首页 > 解决方案 > lodash:仅深度复制数组中的几个属性

问题描述

我有一个具有以下属性的数组

data = [ { 'id' : 1,
'name': 'xyz',
'age': 21,
'gender': 'M',
'address': '123 xyz'},
{ 'id' : 2,
'name': 'abc',
'age': 23,
'gender': 'F',
'address': '456 abc'}
]

我正在尝试用几个属性构建一个新数组并像这样更新一个属性(地址)

data1= [ {'id':1,'name':'xyz','address1':'123 xyz'},{'id':2,'name':'abc','address1':'456 abc '}]

我尝试使用地图和删除功能。但想看看是否有一种简单的方法可以做到这一点。我尝试使用一些 lodash 函数的组合,但没有成功。

标签: javascriptecmascript-6lodash

解决方案


仅使用该map功能怎么样?

var data = [{
    'id': 1,
    'name': 'xyz',
    'age': 21,
    'gender': 'M',
    'address': '123 xyz'
  },
  {
    'id': 2,
    'name': 'abc',
    'age': 23,
    'gender': 'F',
    'address': '456 abc'
  }
];

var data1 = data.map(x => ({id: x.id, name: x.name, address1: x.address}));

// modify data
data[0].id = 3;

// only data has been modified, not data1
console.log(data);
console.log(data1);


推荐阅读