array merge без замещения
друзья, попробовал разные функции погуглить, но все сливают с пересечением.
есть массив arr и в нем еще один - items, в нем последовательно перечислены элементы вроде ['items'][0]['id'] = 1, ['items'][0]['stat'] = 1... потом появляется еще один такой же arr, но с новыми данными. Их нужно не заменить, а добавить. Т.е. если в items 10 элементов, остальные прибавить после 9ого индекса, без замещения. Ведь в новом arr нумерация продет так же от 0 до 9. Т.е. нужно чтобы в слитом массиве получилось 20 элементов items. |
Эээ concat?
|
увы, получается в новом массиве [0]['items'] - от нового и следующий в этом уровне ['items'] - от старого массива. Т.е. на одном уровне [0] и ['items']. А нужно чтобы ['items'] слились
|
Оно?
arr1= [0, 1, 2, 3]; arr2= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; arr1.push.apply(arr1, arr2.slice(arr1.length)); alert(arr1); |
Цитата:
|
Цитата:
|
Я воспризвел примерно его структуру:
var arr=
[
{
'items':
[
{
'id':1,
'stat':1
},
{
'id':10,
'stat':12
}
],
'someshit': 'someshit'
},
'arrayelement'
];
alert(arr[0]['items'][0]['id'])
alert(arr[0]['items'][1]['stat'])
Имхо работать с этим - извращение, нативными функциями точно не отделаешься. |
Разве что в цикле:
arr[i]['items'].concat(arr2[i]['items'])Если я правильно понял задачу. |
| Часовой пояс GMT +3, время: 08:06. |