У меня есть следующий массив объектов:
arr = [
{
connectors:[
{source: "aaaa", target: "bbbb"}
{source: "bbbb", target: "2222"}
{source: "aaaa", target: "cccc"}
{source: "cccc", target: "1111"}
],
connections: [
{name: "aaaa", id: "11", type: "main"}
{name: "bbbb", id: "22", type: "submain"}
{name: "2222", id: "33", type: "supersubmain"}
{name: "cccc", id: "44", type: "submain"}
{name: "1111", id: "55", type: "supersubmain"}
]
}
]
Мне нужно добавить в массив дополнительное свойство, основанное на сопоставлении пар ключ-значение с массивом коннекторов.
Условие в основном будет if(connectors.source === connections.name && connections.type === 'main')
, тогда мне нужно добавить свойство подключения к массиву соединителей, как показано ниже.
Я хочу следующий вывод:
arr = [
{
connectors:[
{source: "aaaa", target: "bbbb", connect: true}
{source: "bbbb", target: "2222", connect: false}
{source: "aaaa", target: "cccc", connect: true}
{source: "cccc", target: "1111", connect: false}
],
connections: [
{name: "aaaa", id: "11", type: "main"}
{name: "bbbb", id: "22", type: "submain"}
{name: "2222", id: "33", type: "supersubmain"}
{name: "cccc", id: "44", type: "submain"}
{name: "1111", id: "55", type: "supersubmain"}
]
}
]
Я пытался использовать комбинацию различных функций es6, таких как карта, фильтр, распространяемый, но не могу найти подходящее решение.
Заранее спасибо.
c.connections
, если не найдетe.type == 'main'
. Последовательность номеров внутренних итераций будет1
,5
,1
,5
, а после некоторой оптимизации может быть1
,2
,1
,4
19.10.2017