找到JavaScript数组中唯一唯一值的最佳方法是什么

Oli*_*via 3 javascript algorithm

什么是找到一个数组的唯一独特价值的最佳方式(有效的)在时间复杂度方面.

例:

  • findUniq([2, 1, 1, 1, 1, 1]) 应该回来 2

  • findUniq([3, 4, 3, 3, 3, 3, 3, 3, 3]) 应该回来 4

限制:

该数组首先包含2个以上的值.

该数组只有数字.

该数组只有一个唯一值,如[1,7,1,1]或[4,2,2,2]

[3,4,5,3]不是有效输入.

我想知道我是否可以Set用来解决这个问题.

这是带有for循环的解决方案,我不确定此解决方案是否会通过所有方案.

 let findUniq = (arr) => {
  for(let i = 0; i < arr.length; i++) {
    if (arr[i] !== arr[0]) {
      return arr[i]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 5

您可以使用find方法并检查是否indexOf等于lastIndexOf.它将返回第一个匹配并停止循环.

const uniq = arr => arr.find((e, i) => arr.indexOf(e) == arr.lastIndexOf(e));

console.log(uniq([3, 4, 3, 3, 3, 3, 3, 3, 3]));
console.log(uniq([1, 2, 3, 1, 2]));
console.log(uniq([2, 1, 1, 1, 1, 1]));
Run Code Online (Sandbox Code Playgroud)