两个数组以身份和姓名字段合并
时间: 2024-09-26 07:13:46 浏览: 23
Java英文单词汇总.doc
在JavaScript中,如果你有两个数组,每个数组都有“身份”和“姓名”这两个字段,你可以使用多种方法将它们合并成一个新的数组,比如利用map()、reduce() 或者简单的push()操作:
1. **使用concat() + map()**: 将两个数组转换为对象数组,然后合并:
```javascript
let arr1 = [{ identity: 'id1', name: 'Alice' }, { identity: 'id2', name: 'Bob' }];
let arr2 = [{ identity: 'id3', name: 'Charlie' }, { identity: 'id4', name: 'Dave' }];
let mergedArr = arr1.concat(arr2)
.map(obj => ({ identity: obj.identity, name: obj.name }));
```
2. **使用reduce()**: 逐个遍历两个数组并将其合并为新数组对象:
```javascript
let mergedArr = arr1.reduce((acc, cur) => ({
...acc,
[cur.identity]: cur.name,
}), {})
.merge(arr2);
```
这里假设有个名为`.merge()`的方法,用于合并第二个数组。
3. **直接循环** (适用于小型数据集):
```javascript
let mergedArr = [];
for(let obj of arr1) {
mergedArr.push({ ...obj, ...arr2.find(item => item.identity === obj.identity) });
}
```
这会遍历第一个数组,查找第二个数组中对应身份的项,并合并它们。
阅读全文