根据第一个值拆分数组 - JavaScript
javascriptweb developmentfront end technologyobject oriented programming更新于 2025/12/19 20:28:17
假设我们有一个像这样的数字数组 −
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 ] ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

