Javascript lodash:深度复制阵列中的少数属性

Javascript lodash:深度复制阵列中的少数属性,javascript,ecmascript-6,lodash,Javascript,Ecmascript 6,Lodash,我有一个具有以下属性的数组 data = [ { 'id' : 1, 'name': 'xyz', 'age': 21, 'gender': 'M', 'address': '123 xyz'}, { 'id' : 2, 'name': 'abc', 'age': 23, 'gender': 'F', 'address': '456 abc'} ] 我正在尝试用很少的属性构建一个新的数组,并像这样更新一个属性地址 数据1=[{'id':1, “名称”:“xyz”, 'address1':'12

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

data = [ { 'id' : 1,
'name': 'xyz',
'age': 21,
'gender': 'M',
'address': '123 xyz'},
{ 'id' : 2,
'name': 'abc',
'age': 23,
'gender': 'F',
'address': '456 abc'}
]
我正在尝试用很少的属性构建一个新的数组,并像这样更新一个属性地址

数据1=[{'id':1, “名称”:“xyz”, 'address1':'123 xyz'}, {'id':2, 'name':'abc', “地址1”:“456 abc”} ]

我尝试使用map和remove函数。 但我想看看是否有一个简单的方法来做到这一点。我尝试使用一些lodash函数的组合,但没有成功

let data1 = data.map(d => {
return {'id' : d.id, 'name': d.name, 'address1': d.address}
})
只需一个简单的映射就足够了,不需要任何库。

只需使用

风险值数据=[{ “id”:1, “名称”:“xyz”, 年龄:21岁,, ‘性别’:‘M’, “地址”:“123 xyz” }, { “id”:2, 'name':'abc', 年龄:23岁,, ‘性别’:‘F’, “地址”:“456 abc” } ]; var data1=data.mapx=>{id:x.id,name:x.name,address1:x.address}; //修改数据 数据[0]。id=3; //仅修改了数据,未修改数据1 控制台日志数据; console.logdata1 我将使用带有分解结构的映射和速记属性符号来创建新对象:

// Extracts `id`, `name`, and `address`...
//     \−−−−−−−−−−−−−−−  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
const result = data.map(({id, name, address: address1}) => ({id, name, address1}));
// Renames `address` to `address1` −−−−−−−−^^^^^^^^^^       ^^^^^^^^^^^^^^^^^^^^
// Builds new object with result −−−−−−−−−−−−−−−−−−−−−−−−−−/
实例:

常量数据=[{'id':1, “名称”:“xyz”, 年龄:21岁,, ‘性别’:‘M’, '地址':'123 xyz'}, {'id':2, 'name':'abc', 年龄:23岁,, ‘性别’:‘F’, '地址':'456 abc'} ]; const result=data.map{id,name,address:address1}=>{id,name,address1};
console.logresult;我认为你甚至不需要洛达斯来做这个tbh…@Sumneevans-或者基本上其他任何东西,这些天-是的,我相应地更新了我的地图@OP,仅供参考您需要的术语是重命名密钥,而不是更新。更新通常指更改值,例如更改地址文本。@Summer非常感谢。但我刚刚发现,我需要添加id和名称作为info的子项。类似于info.id=d.id,info.name=d.name和address1=d.address的东西如果我想添加id和name作为info.id=d.id,info.name=d.name和address1=d.addresslet data1=data.mapd=>{info:{'id':d.id,'name':d.name},'address1':d.address}@indra257