Как переместить массивы из текстового поля в таблицу с помощью Javascript

Я пытаюсь переместить результат ввода из текстового поля в таблицу. Я использую javascript для получения значения массива.

Но теперь я могу отобразить его только в одном текстовом поле. Я не понимаю, как разделить значение массива в таблицу.

<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>

x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br>
x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br>
x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br>
x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br>
<input type = "button" value = "next" onclick = "next3();">

<textarea id = "koord" value = "" style = "width:220px;"></textarea>

<script>
function next3(){

    var vx = String($("input[name='px[]']").map(function(){return $(this).val();}).get());  
    var vy = String($("input[name='py[]']").map(function(){return $(this).val();}).get());

    var vxArr = vx.split(",");
    var vyArr = vy.split(",");

    var lenArr = vxArr.length;

    var isi = "";
    for (i = 0; i < lenArr; i++) {
        var koord = "X" + vxArr[i] + " " + "Y" + vyArr[i];
        //alert (koord);
        var isi = isi + ', ' + koord;

    } 

    //alert (isi);

    var lastChar = isi.substr(2); // => "1"

    $("#koord").val(lastChar);

}
</script>

Результат в текстовом поле

Ссылка на изображение https://postimg.cc/fJWHhxp9

Я ожидаю

+---------+---------+
| X Point | Y Point |
+---------+---------+
|     123 |     456 |
|     123 |     456 |
|     123 |     456 |
|     123 |     456 |
+---------+---------+
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
453
3

Ответы 3

Это должно помочь вам обработать текст:

const text = 'x123 y123, x234 y234, x345 y345';

// split text on commas ','
const splitTextArray = text.split(',');

console.info(splitTextArray);

// now map to objects you can reference
const textMapArray = splitTextArray.map(text => {
  // now trim teading/trailing whitespace and split text on space
  const splitText = text.trim().split(' ');
  // save each string from the second char on (i.e. removes the x/y)
  return {x: splitText[0].substring(1), y: splitText[1].substring(1) };
});

console.info(textMapArray);

Я пытаюсь изменить значение константный текст в массив, но он показывает ошибку Uncaught TypeError: text.split is not a function

Kusnadi 02.01.2019 05:23
split - это строковая функция, она не работает с массивом, она возвращает массив.
Drew Reese 02.01.2019 05:27

Ах, я думаю, я неправильно истолковал ваш вопрос. Кажется, вы уже получили все свои входные данные в массиве, но затем преобразовали его в строку. Думаю, это есть только в Коде.

Drew Reese 02.01.2019 05:39

Оставить здесь, чтобы кто-нибудь нашел на случай, если это им поможет.

Drew Reese 02.01.2019 07:18

У вас есть фиксированная длина входов, вы можете легко использовать массив в качестве значений и сгенерировать из него таблицу, вместо строки вы можете сохранить это как массив и добавить строки.

function next3() {

  var vx = ($("input[name='px[]']").map(function() {
    return $(this).val();
  }).get());
  var vy = ($("input[name='py[]']").map(function() {
    return $(this).val();
  }).get());
  
  $('table tbody').html('');
  
  vx.forEach((a, index) => {
    if (a !== '' && vy[index] !== '') {
      $('table tbody').append('<tr><td>' + a + '</td><td>' + vy[index] + '</td></tr>')
    }
  })

}
table {
  border: 1px solid black
}
<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>

x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br> x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br> x <input type = "text" name = "px[]" value = "" /> y <input type = "text"
  name = "py[]" value = "" /><br> x <input type = "text" name = "px[]" value = "" /> y <input type = "text" name = "py[]" value = "" /><br>
<input type = "button" value = "next" onclick = "next3();">

<textarea id = "koord" value = "" style = "width:220px;"></textarea>
<table>
  <thead></thead>
  <tbody></tbody>
</table>

попробуйте это я внес некоторые изменения

  function next3() {

            var vx = String($("input[name='px[]']").map(function () { return $(this).val(); }).get());
            var vy = String($("input[name='py[]']").map(function () { return $(this).val(); }).get());

            var vxArr = vx.split(",");
            var vyArr = vy.split(",");

            var lenArr = vxArr.length;
            var isi = " "+"X Point" +" " + "Y Point"+'\n';
            //var isi = "";
            for (i = 0; i < lenArr; i++) {
                var koord = "" + vxArr[i] + " " + "" + vyArr[i];
                //alert (koord);
                var isi = isi + '\n' + koord;

            }

            //alert (isi);

            var lastChar = isi.substr(1); // => "1"

            $("#koord").val(lastChar);

        }

Другие вопросы по теме