如何制作本机javascript函数以检测Array中的不同值?
例如:
const arr = [];
console.log(checkDiff(arr["A", "A", "A", "A")); // false
console.log(checkDiff(arr["A", "A", "A", "B")); // true
console.log(checkDiff(arr["B", "A", "C", "A")); // true
...
谢谢。
答案 0 :(得分:5)
您可以使用new Set()
存储唯一值。使用size
获取唯一元素的数量。如果大小为1,则返回false
。
console.log(checkDiff(["A", "A", "A", "A"])); // false
console.log(checkDiff(["A", "A", "A", "B"])); // true
console.log(checkDiff(["B", "A", "C", "A"])); // true
console.log(checkDiff([])); // true
function checkDiff(a) {
return new Set(a).size !== 1;
}
如果数组为空,如果要返回false
,则可以:
console.log(checkDiff(["A", "A", "A", "A"])); // false
console.log(checkDiff(["A", "A", "A", "B"])); // true
console.log(checkDiff(["B", "A", "C", "A"])); // true
console.log(checkDiff([])); // false
function checkDiff(a) {
return a.length !== 0 && new Set(a).size !== 1;
}
答案 1 :(得分:1)
使用every
:
function checkDiff(arr) {
return !arr.every(e => e == arr[0]);
}
console.log(checkDiff(["A", "A", "A", "A"]));
console.log(checkDiff(["A", "A", "A", "B"]));
console.log(checkDiff(["B", "A", "C", "A"]));
或者,从Set
创建一个新数组,看看length
是否不是1:
function checkDiff(arr) {
return [...new Set(arr)].length != 1;
}
console.log(checkDiff(["A", "A", "A", "A"]));
console.log(checkDiff(["A", "A", "A", "B"]));
console.log(checkDiff(["B", "A", "C", "A"]));
答案 2 :(得分:0)
您可以检查是否存在与第一个元素不同的元素。 Array.prototype.some
checkDiff = (arr) => arr.some(ele => ele !== arr[0]);
console.log(checkDiff(["A", "A", "A", "A"])); // false
console.log(checkDiff(["A", "A", "A", "B"])); // true
console.log(checkDiff(["B", "A", "C", "A"])); // true