Всем Доброго времени года.
Дано 2 массива объектов(pages[] и categories[]). Нужно перебрав элементы массива и свойств каждого из объектов, получить новый массив с изменёнными свойствами объектов в нём:
Делаю так:
categories: [{_id:'5d636c50349128976d09806a',catName:'Banking',catClass:'banking',userId:''},
{_id:'5d636c50349128976d09806b',catName: 'Torrents', catClass: 'torrents', userId:''},
{_id:'5d636c50349128976d09806c',catName: 'AudioBooks', catClass: 'audiobooks', userId:''}];
pages: [
{id: 0, name: 'N-0', link: '', ctgrId: '5d636c50349128976d09806a',userId: '',screen:''},
{id: 1, name: 'N-1', link: '', ctgrId: '5d636c50349128976d09806a',userId: '',screen:''},
{id: 2, name: 'N-2', link: '', ctgrId: '5d636c50349128976d09806a',userId: '',screen:''},
{id: 3, name: 'N-3', link: '', ctgrId: '5d636c50349128976d09806c',userId: '',screen:''}]
const getPagesArr = (pages, categories) =>{
for(var i=0; i <= pages.length; i++){
for(var j=0; j <= categories.length; j++){
for(var kk in pages[i]){
for(var dd in categories[j]){
if(pages[i][kk] === categories[j][dd]){
pages[i]['ctgrId'] = categories[j]['catClass']
}
}
}
}
}
return pages;
}
const newArray = getPagesArr(pages, categories);
Должен получиться новый массив pages, в котором у объектов со свойством ctgrId должно быть значение объектов catClass из categories, при совпадении свойств pages[i]['ctgrId'] === categories[j]['_id']