An array can contains multiple values. I want to check whether all the values are same or different.
Example
var a = [2, 4, 7, 2, 8]; // all values are not same
var b = [2, 2, 2, 2, 2]; // all values are same
How can I check it in jquery
An array can contains multiple values. I want to check whether all the values are same or different.
Example
var a = [2, 4, 7, 2, 8]; // all values are not same
var b = [2, 2, 2, 2, 2]; // all values are same
How can I check it in jquery
You can try like this:
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));
See the MDN for Array.prototype.every()
Check this solution
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
It's possible using an array 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
If you have access to 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));