двумерный массив javascript

293
15 ноября 2017, 02:36

Здравствуйте. Есть одномерный массив объектов в которых хранится информация о баннерных изображениях на сайте. Например 4 элемента:

images = [
[0] => Object {src : path, size : '256x256'},
[1] => Object {src : path, size : '128x128'},
[2] => Object {src : path, size : '256x256'},
[3] => Object {src : path, size : '128x128'},
]

Мне нужно создать многомерный массив сгруппировав по ключу (size).

Что бы получилось:

result = [
[256x256] => [
   [0] => 'src_img1',
   [1] => 'src_img3'
]
[128x238] => [
   [0] => 'src_img2',
   [1] => 'src_img4'
]
]

Я делаю примерно вот так:

for (var i in images){
    result[images[i].size] = [];
    result[images[i].size][i] = images[i].src;
}

В таком случае в каждом из массивов ключи выглядят вот так:

result = [
    [256x256] => [
       [0] => 'src_img1',
       [1] => 'src_img3'
    ]
    [128x238] => [
       [2] => 'src_img2',  <-- неверная индексация
       [3] => 'src_img4'
    ]
    ]

Подскажите пожалуйста, каким образом можно построить этот массив, что бы индексация в каждом одиночном массиве начиналась с нуля?

Answer 1
result = {}
for (var i in images){
    // чтоб не затирать массив, создаем только если его нет
    if (! result[images[i].size]) result[images[i].size] = []
    result[images[i].size].push(images[i].src);
}
// { '256x256': [ '1', '3' ], '128x128': [ '2', '4' ] }
Answer 2

Элементарно, Ватсон. Воспользуйтесь методом push

for (var i in images){
    result[images[i].size] = [];
    result[images[i].size].push(images[i].src);
}
READ ALSO
Проблема области видимости

Проблема области видимости

Написал промисы, которые возвращают в конечном итоге данные вот код:

212
Не работает [^-] в регулярном выражении для проверки URL на JavaScript

Не работает [^-] в регулярном выражении для проверки URL на JavaScript

Нужно создать регулярное выражение для проверки URL

193
Не работают корректно js файлы

Не работают корректно js файлы

Здравствуйте, имеются два файла js

220
удалить вирус coinhive с wordpress

удалить вирус coinhive с wordpress

не могу найти и удалить майнер который лежит в bodyкак он попал на сайт не понятно

771