kilimandjaro
@kilimandjaro
web developer

А как сделать в javascript динамический многомерный массив?

А вот в пхп можно так:
foreach ($_GET as $item)
$arr[$item['name']][] = $item['value']

Как такое сделать на JS ?

Суть текстом: есть произвольное количество инпутов наподоби таких

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

arrayName => [
nameOleg => [5,6]
nameIvan=> [5]
]
Объекты или массивы это будут все равно. Главное что бы можно было задать имена такие, какие они в name у input
  • Вопрос задан
  • 3104 просмотра
Решения вопроса 1
dan-leech
@dan-leech
Программист-фрилансер
var $arr = {};
if(!$arr[$item['name']]) 
    $arr[$item['name']] = [];
$arr[$item['name']].push($item['value']);
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Ivanq
@Ivanq
Знаю php, js, html, css
var arr = {};
for(var i=0;i<$_GET.length;i++) {
    var item = $_GET[i];
    arr[item.name] = [item.value];
}
Ответ написан
@hjk
В javascript всё очень похоже. Можно сделать $arr[$item['name']][] = $item['value'], только вместо квадратных скобок можно использовать метод push:
$arr[$item['name']].push($item['value'])
Многомерный динамический массив.
Ответ написан
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Array.prototype.reduce.call($("input"), function(p, t){
   return  p[t.name] = t.value, p;
}, {});


----------------------------------------
Пример
----------------------------------------
<input type="text" name="one" value="222">
<input type="text" name="two" value="228">


И его результат
{
   one : "222",
   two : "228"
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы