在JavaScript中将相同的条目组合在一起
我们有一组具有相同条目的数字。我们需要编写一个函数,该函数接受数组并将所有相同的条目分组到一个子数组中,并返回由此形成的新数组。
例如:如果输入数组是-
const arr = [234, 65, 65, 2, 2, 234];
//那么输出应该是-
const output = [[234, 234], [65, 65], [2, 2]];
我们将使用Hashmap来跟踪已经发生的元素,并使用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 ] ]