js二维数组里面的数组,根据某一项值相同就合并
时间: 2023-07-22 19:43:35 浏览: 146
你可以使用 JavaScript 中的 Array.prototype.reduce() 方法来实现这个功能。具体步骤如下:
1. 遍历二维数组,使用 reduce() 方法将每个子数组合并到一个新数组中。
2. 在 reduce() 方法中使用一个对象来存储已经合并的子数组,这个对象的键为你要比较的项的值,值为已经合并的子数组。
3. 在每次遍历时,检查当前子数组的比较项是否已经在对象中存在,如果存在,则将当前子数组合并到对应的值中,如果不存在,则将当前子数组作为新的值添加到对象中。
下面是一个示例代码:
```javascript
const arr = [
[1, 'a', 10],
[2, 'b', 20],
[3, 'a', 30],
[4, 'b', 40],
[5, 'c', 50],
[6, 'a', 60]
];
const mergedArray = Object.values(arr.reduce((acc, curr) => {
const key = curr[1];
if (acc[key]) {
acc[key] = [...acc[key], curr];
} else {
acc[key] = [curr];
}
return acc;
}, {}));
console.log(mergedArray);
// Output: [[1, 'a', 10], [3, 'a', 30], [6, 'a', 60]], [[2, 'b', 20], [4, 'b', 40]], [[5, 'c', 50]]
```
在上面的代码中,我们比较了数组中每个子数组的第二项(即 `'a'`, `'b'` 或 `'c'`)来判断它们是否应该合并。输出结果表明,所有第二项相同的子数组都已经被合并到了同一个数组中。
阅读全文