javascript - 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 函数的组合,但没有成功。
解决方案
仅使用该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);
推荐阅读
- javascript - 使用 Node 的“加密”模块时是否需要使用密钥派生?
- javascript - JavaScript:按常见项目字段组合项目值列表
- api - 将 LogMeIn Refresh Token Curl 转换为 Coldfusion
- java - 在 Java 对象中发送 Multipart 和 JSON 数据 - Spring Boot Rest
- python - 网上银行网页抓取
- google-cloud-platform - 有没有办法通过存储在 Google Cloud Storage 中的文本文档进行 grep?
- html - 寻找更简洁的语法来使用 css 网格重复模式的列?
- python - Python:类方法中的 *args 行为
- javascript - jQuery.val() 仅在使用 datepicker 的第二个事件上返回值
- flutter - 如何显示html的一部分?