假设我们有一个数字数组,像这样-
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
每个子数组必须严格包含两个元素。我们需要编写一个构造新数组的函数,在该函数中,具有相似第一值的子数组的所有第二个元素都被分组在一起。
因此,对于上面的数组,输出应类似于-
const output = [ [45, 34, 49], [34, 67], [78, 65] ];
我们可以利用Array.prototype.reduce()方法来帮助Map()
构建所需的数组。
示例
以下是代码-
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]]; const constructSimilarArray = (arr = []) => { const creds = arr.reduce((acc, val) => { const { map, res } = acc; if(!map.has(val[0])){ map.set(val[0], res.push([val[1]]) - 1); }else{ res[map.get(val[0])].push(val[1]); }; return { map, res }; }, { map: new Map(), res: [] }); return creds.res; }; console.log(constructSimilarArray(arr));
输出结果
这将在控制台中产生以下输出-
[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]
热门文章
- 「3月21日」最高速度19.8M/S,2025年V2ray/Shadowrocket/SSR/Clash每天更新免费节点订阅地址分享
- 「4月9日」最高速度18.5M/S,2025年Clash/SSR/Shadowrocket/V2ray每天更新免费节点订阅地址分享
- 「4月6日」最高速度21.4M/S,2025年V2ray/SSR/Shadowrocket/Clash每天更新免费节点订阅地址分享
- 打完动物疫苗注意事项(动物打疫苗后多久能杀了吃)
- TensorFlow tensor的类型和形状转化
- 使用EasyExcel实现自定义表头导出
- 如何将Python词典保存为CSV文件
- 免费领养动物的app(免费领养宠物的平台)
- Filebeat和logstash 使用过程中遇到的一些小问题记录
- 动物注射疫苗前后注意事项有哪些 动物注射疫苗前后注意事项有哪些呢