JavaScript将相同条目分组为子数组方法详解

首页 / 新闻资讯 / 正文

假设我们有一组数字,这些数字具有相同的条目。我们需要编写一个函数,该函数接受数组并将所有相同的条目分组到一个子数组中,并返回由此形成的新数组。

例如:如果输入数组是-

const arr = [234, 65, 65, 2, 2, 234];

那么输出应该是-

const output = [[234, 234], [65, 65], [2, 2]];

我们将使用哈希映射来跟踪已经发生的元素,并使用for循环遍历数组。

示例

以下是代码-

const arr = [234, 65, 65, 2, 2, 234]; const groupArray = arr => {    const map = {};    const group = [];    for(let i = 0; i < arr.length; i++){       if(typeof map[arr[i]] === 'number'){          group[map[arr[i]]].push(arr[i]);       }else{          //push方法返回数组的新长度          //新推入元素的索引为length-1-          map[arr[i]] = group.push([arr[i]])-1;       }    };    return group; } console.log(groupArray(arr));

输出结果

这将在控制台中产生以下输出-

[ [ 234, 234 ], [ 65, 65 ], [ 2, 2 ] ]