两个list对象根据里面的某一属性值合并另一属性
时间: 2023-09-26 10:06:49 浏览: 101
如果你有两个列表对象,想要根据某个属性值将它们合并,并将另一个属性的值进行组合,你可以使用 JavaScript 的数组方法 `map()` 和 `find()` 来实现。
以下是一个示例代码:
```javascript
const list1 = [
{ id: 1, name: 'John', age: 25 },
{ id: 2, name: 'Alice', age: 30 }
];
const list2 = [
{ id: 1, occupation: 'Engineer' },
{ id: 2, occupation: 'Teacher' }
];
const mergedList = list1.map(obj1 => {
const obj2 = list2.find(obj2 => obj2.id === obj1.id);
return { ...obj1, occupation: obj2.occupation };
});
console.log(mergedList);
// 输出: [
// { id: 1, name: 'John', age: 25, occupation: 'Engineer' },
// { id: 2, name: 'Alice', age: 30, occupation: 'Teacher' }
// ]
```
在上面的示例中,我们有两个列表对象 `list1` 和 `list2`。我们使用 `map()` 方法遍历 `list1` 中的每个对象,并使用 `find()` 方法在 `list2` 中找到相同 `id` 的对象。然后,我们使用展开语法 `{ ...obj1, occupation: obj2.occupation }` 将两个对象合并,并添加一个新的属性 `occupation`。
最后,我们得到了一个合并后的列表对象 `mergedList`,其中包含了 `list1` 和 `list2` 的属性,并且根据相同 `id` 进行了合并。