dmi,
<script> var json = [ {"Itemid":35, "name":"test", "hide":0 }, {"Itemid":36, "name":"test22", "hide":0 }, {"Itemid":37, "name":"test33", "hide":0 }, {"Itemid":38, "name":"test32", "hide":0 } ], arr = [{"Itemid":39, "name":"test44", "hide":0 }, {"Itemid":40, "name":"test55", "hide":0 }] var indx = 0, a = json; a.some(function(a, i) { return a.Itemid == 37 && (indx = i) }) a = a[indx]; a.parent = arr; //строка для теста a = a.parent; a.some(function(a, i) { return a.Itemid == 39 && (indx = i) }) a = a[indx]; a.parent = "abrarkadbra"; document.write(JSON.stringify(json)) </script> |
рони,
Тебе отдельное спасибо за напутствия, в итоге написал рекурсивную функцию, где то в ней есть бок - иногда дублируются значения - найду ошибку исправлю. Для тех кто будет биться над подобной проблемой - оставлю ее тут. items - начальный json массив itemid - ид товара в который вгружать данные data - собственно данные которые надо загрузить function putItems (items, itemid, data) { var i = 0; for (i = 0; i < items.length; i++) { if (items[i].Itemid == itemid) { items[i].parent = data; return items; } var item = putItems(items[i].parent, itemid, data); if (item != null) { return items.concat(item); } } return null; } |
Часовой пояс GMT +3, время: 05:02. |