检查数组是否具有不同的元素

时间:2018-08-15 17:54:37

标签: javascript arrays

我正在尝试检查数组是否包含differents值: 例如,当元素不同时,我需要变得正确:

["tata", "titi", "titi", "toto"] ==> true

,当所有元素相同时为false:

["tata", "tata", "tata", "tata"] ==> false

你能告诉我一种方法吗

3 个答案:

答案 0 :(得分:1)

您可以为此使用Set对象。

(new Set(["tata", "tata", "tata", "tata"])).size !== 1 // false
(new Set(["tata", "titi", "titi", "toto"])).size !== 1 // true

用自己的方法包装登录名。

function hasUniqItems(collection) {
    return (new Set(collection)).size === 1;
}

console.log(hasUniqItems(["tata", "tata", "tata", "tata"])); // true
console.log(hasUniqItems(["tata", "titi", "titi", "toto"])); // false

答案 1 :(得分:1)

您可以在Array原型上使用someevery函数。

var allTheSame   = ["tata", "tata", "tata", "tata"];
var allDifferent = ["tata", "titi", "titi", "toto"];

function areAllTheSame(arr) {
  return arr.every((item, index, array) => item === array[0]);
}

function areAllDifferent(arr) {
  return arr.some((item, index, array) => item !== array[0]);
}

console.log(areAllTheSame(allDifferent));   // false
console.log(areAllDifferent(allDifferent)); // true

console.log(areAllTheSame(allTheSame));     // true
console.log(areAllDifferent(allTheSame));   // false

答案 2 :(得分:0)

您可以使用Set获得唯一的数组元素。如果唯一元素的长度不等于(小于)实际数组,则它不是唯一数组

function is_unique(items){
   if(items.length  <=1 ){
       return true;
   }
   return new Set(items).size != 1;;
}
var items =["tata", "titi","titi", "toto"];
console.log(is_unique(items)); //returns true

var items =["tata", "tata", "tata", "tata"];
console.log(is_unique(items)); //returns false