Я пытаюсь переместить результат ввода из текстового поля в таблицу. Я использую 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 |
+---------+---------+



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это должно помочь вам обработать текст:
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);split - это строковая функция, она не работает с массивом, она возвращает массив.
Ах, я думаю, я неправильно истолковал ваш вопрос. Кажется, вы уже получили все свои входные данные в массиве, но затем преобразовали его в строку. Думаю, это есть только в Коде.
Оставить здесь, чтобы кто-нибудь нашел на случай, если это им поможет.
У вас есть фиксированная длина входов, вы можете легко использовать массив в качестве значений и сгенерировать из него таблицу, вместо строки вы можете сохранить это как массив и добавить строки.
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);
}
Я пытаюсь изменить значение константный текст в массив, но он показывает ошибку
Uncaught TypeError: text.split is not a function