如何检查给定数组的所有值是否唯一

时间:2018-02-20 22:58:42

标签: javascript arrays

我需要在JavaScript中编写一个函数,在检查给定数组的所有值是否唯一之后返回一个布尔值。 实例

>>> A
[9, 9, 4, 3, 6]
>>> list(reversed(list(itertools.accumulate(reversed(A), max))))
[9, 9, 6, 6, 6]

3 个答案:

答案 0 :(得分:1)

您可以比较数组的长度和始终包含uniq条目的Set的大小。

const isUnique = (arrToTest) => 
  arrToTest.length === new Set(arrToTest).size

console.log(isUnique([1,1,2,3]));
console.log(isUnique([1,2,3]));

答案 1 :(得分:0)

你可以sort并检查每个兄弟姐妹。



var array1 = [1,2,3,4];
var array2 = [1,2,1,4];

function decorate(array) {
  array.uniques = function() {
    this.sort();
    for (var i = 0; i < this.length; i++) {
      if (this[i + 1] === this.length) return true;
      if (this[i] === this[i + 1]) return false;
    }
  }
}

decorate(array1);
decorate(array2);

console.log(array1.uniques());
console.log(array2.uniques());
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用自定义对象

function checkUnique(array)
{ var i,obj={};
  for(i=0;i<array.length;i++)
  { if(obj[array[i]])
      return false;
    obj[array[i]]=true;
  }
  return true;
}
console.log(checkUnique([1,2,3,4]));
console.log(checkUnique([1,2,1,4]));