В моем коде я использовал два цикла forEach.Но чтобы оптимизировать мой код, мне сказали удалить внутренний forEach.Я был проинструктирован не использовать цикл forEach внутри цикла forEach.Поэтому я не хочу перебирать второй массив obj3.Я просто хочу получить значения в определенной позиции.Вот мой код: -
var obj2 = [{
"name": "4134",
"calls": [
]
}]
var obj3 = [{ Channel: 'SIP/4134-0004462a',
State: 'Up',
Accountcode: '7013658596'},
{ Channel: 'SIP/4334-sa',
State: 'Up',
Accountcode: '07717754702',
}]
var function = (obj2, obj3) => {
obj2.forEach((a) =>
obj3.forEach((b) => {
if (b.Channel.includes(a.name)) a.calls = (a.calls || []).concat(Object.assign({}, { MobileNo: b.Accountcode, Status : b.State}));
})
);
};
function(obj2, obj3);
Приведенный выше код перебирает obj2 и obj3, и если значение ключа имени существует в значении ключа канала, то он выбирает код учетной записи и состояние из obj3 и выталкивает их вмассив вызовов объекта obj2.Вот выходной массив: -
[ {
"name": "4134",
"calls": [
{
"MobileNo": "7013658596",
"Status": "Up"
}
]
}]
Любые предложения о том, как решить эту проблему?