Здравствуйте. Есть одномерный массив объектов в которых хранится информация о баннерных изображениях на сайте. Например 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'
]
]
Подскажите пожалуйста, каким образом можно построить этот массив, что бы индексация в каждом одиночном массиве начиналась с нуля?
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' ] }
Элементарно, Ватсон. Воспользуйтесь методом push
for (var i in images){
result[images[i].size] = [];
result[images[i].size].push(images[i].src);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости