js 筛选出2个多维数组中id 相同的值
时间: 2024-05-04 11:19:41 浏览: 105
你可以使用双重循环,先遍历第一个多维数组,再遍历第二个多维数组,找到 id 相同的值。以下是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const arr2 = [
{ id: 2, age: 25 },
{ id: 3, age: 30 },
{ id: 4, age: 35 }
];
const result = [];
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i].id === arr2[j].id) {
result.push({ ...arr1[i], ...arr2[j] });
break; // 如果已经找到匹配项,可以提前结束内层循环,优化性能
}
}
}
console.log(result); // [{ id: 2, name: 'Bob', age: 25 }, { id: 3, name: 'Charlie', age: 30 }]
```
这里使用了 ES6 的展开运算符,将匹配到的对象合并为一个新的对象。如果你不想使用 ES6,可以改写为:
```javascript
result.push(Object.assign({}, arr1[i], arr2[j]));
```
也可以使用 `forEach` 方法代替 `for` 循环:
```javascript
const result = [];
arr1.forEach(item1 => {
arr2.forEach(item2 => {
if (item1.id === item2.id) {
result.push(Object.assign({}, item1, item2));
}
});
});
console.log(result); // [{ id: 2, name: 'Bob', age: 25 }, { id: 3, name: 'Charlie', age: 30 }]
```
阅读全文