js 平面数组根据相同的值组装成二维数组
时间: 2023-07-11 08:52:09 浏览: 91
根据相同的值将平面数组组装成二维数组的方法也有很多种,以下是一种常规方法:
假设我们有一个平面数组 arr,其中的元素包含一个相同的值 key,可将其转换为一个二维数组,其中每个子数组中包含相同 key 值的元素。
```javascript
const arr = [
{ key: 'a', value: 1 },
{ key: 'b', value: 2 },
{ key: 'a', value: 3 },
{ key: 'c', value: 4 },
{ key: 'b', value: 5 },
{ key: 'c', value: 6 },
];
let map = new Map();
arr.forEach(item => {
let key = item.key;
let value = item.value;
if(map.has(key)) {
map.get(key).push(value);
} else {
map.set(key, [value]);
}
});
let res = Array.from(map.values());
console.log(res); // [[1, 3], [2, 5], [4, 6]]
```
上述代码中,我们首先定义了一个平面数组 arr,其中的元素包含一个相同的值 key。接着通过遍历数组,将相同 key 值的元素分别存储到一个 Map 中,Map 中的 key 为 key 值,value 为一个数组,存储相同 key 值的元素。最后通过 Array.from 方法将 Map 中的 value 转换成一个二维数组。最终输出转换后的二维数组。
阅读全文