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, время: 23:11. |