在 JavaScript 中创建唯一的数组

问题

我们需要编写一个JavaScript函数,该函数采用数字数组arr作为第一个也是唯一的参数。

移动包括选择任意arr [i],然后将其递增1。我们的函数应该返回最少的移动次数,以使数组arr中的每个值唯一。

例如,如果函数的输入为-

const arr = [12, 15, 7, 15];

那么输出应该是-

const output = 1;

输出说明

因为如果我们将15增至16,则数组将包含所有唯一元素。

示例

为此的代码将是-

const arr = [12, 15, 7, 15];

const makeUnique = (arr = []) => {

   arr.sort((a, b) => a - b);

   let count = 0;

   for (let i = 1; i < arr.length; i++) {

      if (arr[i] <= arr[i - 1]) {

         const temp = arr[i]

         arr[i] = arr[i - 1] + 1

         count += arr[i] - temp

      };

   };

   return count;

};

console.log(makeUnique(arr));

输出结果

控制台中的输出将是-

1

以上是 在 JavaScript 中创建唯一的数组 的全部内容, 来源链接: utcz.com/z/331865.html

回到顶部