对数组进行排序,并将所有相同(重复)的数字分组到JavaScript中各自独立的子数组中

我们需要编写一个JavaScript函数,该函数将一个数字数组作为一个唯一输入。输入数组可能包含一些重复的条目。

我们的函数应该对数组进行排序,并将所有相同(重复)的数字分组到各自的子数组中。

例如-

如果输入数组是-

const arr = [5, 7, 5, 7, 8, 9, 1, 1];

那么输出应该是-

const output = [
   [1, 1],
   [5, 5],
   [7, 7],
   [8],
   [9]
];

示例

为此的代码将是-

const arr = [5, 7, 5, 7, 8, 9, 1, 1];
const sortAndGroup = (arr = []) => {
   let result = [];
   let groupArray;
   arr.sort((a, b) => a - b);
   for (let i = 0; i < arr.length; i++) {
      if (arr[i − 1] !== arr[i]) {
         groupArray = [];
         result.push(groupArray);
      };
      groupArray.push(arr[i]);
   };
   return result;
};
console.log(sortAndGroup(arr));

输出结果

控制台中的输出将是-

[ [ 1, 1 ], [ 5, 5 ], [ 7, 7 ], [ 8 ], [ 9 ] ]