У меня есть два глубоко вложенных объекта, содержащих массивы и объекты внутри этих массивов.Я хотел бы объединить их.Используя 'lodash', он не распознает мои объекты в массивах.
У меня есть это:
var defaults = {
rooms: [
{
name: 'livingroom',
color: 'white'
},
{
name: 'bedroom',
color: 'red'
}
],
people: {
clothes: [
{
fabric: 'wool',
color: 'black'
},
{
fabric: 'jeans',
color: 'blue'
}
]
}
}
var specific = {
people: {
wigs: [
{
shape: 'trump'
}
]
},
furniture : {
foo: 'bar'
}
}
результат должен выглядеть следующим образом:
var merged = {
rooms: [
{
name: 'livingroom',
color: 'white'
},
{
name: 'bedroom',
color: 'red'
}
],
people: {
clothes: [
{
fabric: 'wool',
color: 'black'
},
{
fabric: 'jeans',
color: 'blue'
}
],
wigs: [
{
shape: 'trump'
}
]
},
furniture : {
foo: 'bar'
}
}
используяlodash
const _ = require('lodash');
console.log(_.merge({}, specific, defaults));
я получаю
{ people: { wigs: [ [Object] ], clothes: [ [Object], [Object] ] },
furniture: { foo: 'bar' },
rooms:
[ { name: 'livingroom', color: 'white' },
{ name: 'bedroom', color: 'red' } ] }
это связано с:
Объединить массив объектов по свойству с использованием Lodash
Как объединить два массива в JavaScript и дедуплицировать элементы
, потому что у меня нет общего индекса или имени, я немного потерян.