javascript - 如何合并两个几乎相同的数组/对象(使用下划线js或类似的库)?

标签 javascript arrays object underscore.js

我们有一份旧 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/

相关文章:

javascript - 使用 Rx.js 解决多个 Promise,有更好的方法吗?

javascript - 悬停在 jquery ui <a href ="javascript: submitform()">Country</a> 中不起作用

javascript - 将变量数据类型解析为函数,该函数包含对 JavaScript 中数据类型的条件检查

javascript - 查询。无法识别克隆的元素

ios - 用于 HackerRank 的 Swift String API 替代品

javascript - 遍历对象数组显示语法错误reactjs

arrays - 如何聚合 Postgres 数组中多条记录的所有数组值?

python - 为什么 re.groups() 不为我的一个正确匹配的组提供任何东西?

Javascript 对象到具有多个级别的 XML 字符串

Javascript使用嵌套函数作为对象来访问