js将二维数组中第一组去除,并将剩余数组按key值分成新的二维数组
时间: 2023-12-06 10:40:18 浏览: 227
假设原始的二维数组为arr,其中每一个元素都是一个对象,对象中包含key属性。
你可以使用JavaScript中的slice()方法去除第一组,使用reduce()方法将剩余数组按key值分成新的二维数组。具体代码如下:
```javascript
// 原始二维数组
const arr = [
{ key: 'a', value: 1 },
{ key: 'b', value: 2 },
{ key: 'c', value: 3 },
{ key: 'a', value: 4 },
{ key: 'b', value: 5 },
];
// 去除第一组
const remainingArr = arr.slice(1);
// 按key值分组
const newArr = remainingArr.reduce((acc, cur) => {
const index = acc.findIndex(item => item[0].key === cur.key);
if (index !== -1) {
acc[index].push(cur);
} else {
acc.push([cur]);
}
return acc;
}, []);
console.log(newArr);
// 输出:[[{ key: 'b', value: 2 }, { key: 'b', value: 5 }], [{ key: 'c', value: 3 }], [{ key: 'a', value: 4 }]]
```
在上面的代码中,我们首先使用slice()方法去除了第一组。然后使用reduce()方法将剩余数组按key值分组,返回一个新的二维数组newArr。在reduce()方法中,我们遍历剩余数组的每一个元素,利用findIndex()方法查找当前元素对应的key是否已经存在于新数组中。如果存在,则将当前元素添加到该组中;如果不存在,则创建一个新的组,并将当前元素添加到该组中。最终返回新数组。
阅读全文