我正在尝试检查数组是否包含differents值: 例如,当元素不同时,我需要变得正确:
["tata", "titi", "titi", "toto"] ==> true
,当所有元素相同时为false:
["tata", "tata", "tata", "tata"] ==> false
你能告诉我一种方法吗
答案 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原型上使用some
和every
函数。
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