首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >替换数组中的对象

替换数组中的对象
EN

Stack Overflow用户
提问于 2016-06-02 15:27:58
回答 14查看 149K关注 0票数 104

我有这个javascript对象:

var arr1 = [{id:'124',name:'qqq'}, 
           {id:'589',name:'www'}, 
           {id:'45',name:'eee'},
           {id:'567',name:'rrr'}]

var arr2 = [{id:'124',name:'ttt'}, 
           {id:'45',name:'yyy'}]

我需要将arr1中的对象替换为arr2中具有相同id的项目。

所以这是我想要得到的结果:

var arr1 = [{id:'124',name:'ttt'}, 
           {id:'589',name:'www'}, 
           {id:'45',name:'yyy'},
           {id:'567',name:'rrr'}]

我如何使用javascript实现它?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2016-06-02 15:30:22

您可以在Array#find中使用Array#map

arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);

var arr1 = [{
    id: '124',
    name: 'qqq'
}, {
    id: '589',
    name: 'www'
}, {
    id: '45',
    name: 'eee'
}, {
    id: '567',
    name: 'rrr'
}];

var arr2 = [{
    id: '124',
    name: 'ttt'
}, {
    id: '45',
    name: 'yyy'
}];

var res = arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);

console.log(res);

在这里,如果在arr2中找到idarr2.find(o => o.id === obj.id)将从arr2返回元素,即object。如果不是,则返回arr1中的相同元素,即obj

票数 200
EN

Stack Overflow用户

发布于 2019-09-27 10:16:06

Object.assign(target, source)有什么问题?

在Javascript中,数组仍然是object类型,所以只要找到匹配的键,使用assign仍然应该重新分配由操作符解析的任何匹配的键,对吗?

票数 6
EN

Stack Overflow用户

发布于 2016-06-02 15:54:50

由于您使用的是Lodash,因此可以使用_.map_.find来确保支持主要浏览器。

最后,我会使用类似这样的东西:

function mergeById(arr) {
  return {
    with: function(arr2) {
      return _.map(arr, item => {
        return _.find(arr2, obj => obj.id === item.id) || item
      })
    }
  }
}

var result = mergeById([{id:'124',name:'qqq'}, 
           {id:'589',name:'www'}, 
           {id:'45',name:'eee'},
           {id:'567',name:'rrr'}])
    .with([{id:'124',name:'ttt'}, {id:'45',name:'yyy'}])

console.log(result);
<script src="https://raw.githubusercontent.com/lodash/lodash/4.13.1/dist/lodash.js"></script>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37585309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档