在 JavaScript 中使数组唯一
javascriptweb developmentfront end technology
问题
我们需要编写一个 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