Обзор: Существует массив объекта product group
, и каждая группа продуктов имеет массив items
.Объект группы продуктов имеет уникальный идентификатор, но массиву элементов не назначен уникальный идентификатор.Ниже приведен объект JSON.
const productList = [{
productGroup : 'PG1',
index: 1,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}, {
productGroup : 'PG2',
index: 2,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}];
Требование: Назначьте несколько уникальных идентификаторов для каждого объекта предметов в массиве items
на основе группы продуктов.
Я пробовал до сих пор: рабочее решение: общий индекс группы продуктов с индексом каждого элемента списка
const productList = [{
productGroup : 'PG1',
index: 1,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}, {
productGroup : 'PG2',
index: 2,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}];
const itemList = productList.map(obj => {
obj.items.map((itemObj, index) => {
itemObj.productGroup = obj.productGroup;
itemObj.pgIndex = obj.index;
itemObj.itemIndex = obj.index + '' + index;
});
return obj.items;
});
var mergedListItems = itemList.reduce((arr, arrNext) => arr.concat(arrNext));
console.log('mergedListItems', mergedListItems);
Этот подход хорош?Если нет, то не могли бы вы помочь мне найти лучший подход для этого?