Я пытаюсь получить 2D-массив, используя document.getElementById("clients").value.split(','); так как мне нужно разделить массив 2d.
Я пробовал приведенный выше код/шаг.
<input type = "hidden" id = "clients" name = "clients" value = "{{clients}}">
var displayClient = [];
var clients_array = document.getElementByName("clients").value.split(',');
var itemDisp = [];
var arrayLength = clients_array.length;
for (var i = 0; i < arrayLength; i++) {
displayClient.push(clients_array[i] + ' - ' + clients_array[i]);
itemDisp.push({ label: displayClient[i]});
}
//the 2d array is as follows
[['1', 'client 1'], ['2', 'client 2']]
фактический результат на данный момент: [['1' (новая строка) 'клиент 1']... пока я хотел бы получить: 1 - клиент 1...
не могли бы вы привести пример того, как его использовать?
Как выглядит ваш HTML? Пожалуйста, добавьте это к вашему вопросу.



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


Например см. функцию inputHandler.
Дополнительные сведения о преобразовании HTMLCollection в массив см.
Самый эффективный способ преобразования HTMLCollection в массив
// create elements
fetch('http://jsonplaceholder.typicode.com/users')
.then(res=>res.json())
.then(users => {
users.forEach(function(user) {
var input = document.createElement('input');
input.value = user.name;
input.name = 'clients';
document.body.appendChild(input);
inputHandler();
});
})
.catch(err => {
throw err;
});
function inputHandler() {
var inputs = document.getElementsByName('clients');
inputsArr = Array.prototype.slice.call(inputs);
inputsArr.forEach(function(element) {
console.info(element.value);
});
// or use that HTMLCollection iterable
console.info('? HTMLCollection iterable');
for (var counter = 0; counter < inputs.length; counter++) {
console.info(inputs[counter].value);
// or other operations
}
}
Это
getElementsByName, который возвращает список элементов, похожий на массив.