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