数组可以包含多个值。我想检查所有值是相同还是不同。
实施例
var a = [2, 4, 7, 2, 8]; // all values are not same
var b = [2, 2, 2, 2, 2]; // all values are same
如何在jquery中查看
答案 0 :(得分:2)
您可以尝试这样:
var a = [2, 4, 7, 2, 8];
var b = [2, 2, 2, 2, 2];
function myFunc(arr){
var x= arr[0];
return arr.every(function(item){
return item=== x;
});
}
alert(myFunc(a));
alert(myFunc(b));
请参阅MDN了解Array.prototype.every()
答案 1 :(得分:0)
检查此解决方案
function arrayUnique(array)
{
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
var unique = array.filter( onlyUnique );
return (unique.length == 1);
}
// usage example:
var a = [2, 3, 2, 2, 2];
console.log('Array is unique : ' + arrayUnique(a));
// Array is unique : false
var b = [2, 2, 2, 2, 2];
console.log('Array is unique : ' + arrayUnique(b));
// Array is unique : true
答案 2 :(得分:0)
可以使用数组reduce:
Array.prototype.areAllTheSame = function() {
if(!this.length)
return false
return this.reduce(function(p, c) {
return [c, c==p[0] && p[1]]
}, [this[0], true])[1]
}
var arr = [1,2,3,4]
var arr2 = [2,2,2,2]
arr.areAllTheSame() //-->false
arr2.areAllTheSame() //-->true
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您有权访问Set
:
var a = [2, 4, 7, 2, 8];
var b = [2, 2, 2, 2, 2];
function onlyOneValue(arr){
return [...new Set(arr)].length < 2;
}
document.write(onlyOneValue(a) + '<br>');
document.write(onlyOneValue(b));
&#13;