我们有一份旧 list 和一份新 list 。即使添加了一些新的键值对,计划也是将两者合并。
var oldList = [{
id: 1,
name: 'Michael',
sex: 'male',
goodlooking: 1
}, {
id: 2,
name: 'John',
sex: 'male'
}, {
id: 3,
name: 'Laura',
sex: 'female'
}];
并且...
var newList = [{
id: 1,
name: 'Cindy',
sex: 'female'
}, {
id: 2,
name: 'Herry',
sex: 'male'
}, {
id: 3,
name: 'Laura',
sex: 'female',
goodlooking: 1
}];
现在我正在尝试将它们合并在一起,并通过替换相等键的值来充分利用两者。特别是,合并列表应如下所示:
var mergedList = [{
id: 1,
name: 'Cindy',
sex: 'female',
goodlooking: 1
}, {
id: 2,
name: 'Herry',
sex: 'male'
}, {
id: 3,
name: 'Laura',
sex: 'female',
goodlooking: 1
}];
迈克尔改变了名字和性别,但仍然帅气。约翰改名为亨利,劳拉发现了她的内在美。
最佳答案
var mergedList = _.map(oldList, function (oldElem) {
var newElem = _.find(newList, {id: oldElem.id});
return _.merge(oldElem, newElem);
});
关于javascript - 如何合并两个几乎相同的数组/对象(使用下划线js或类似的库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33531987/