'How do I know an array contains all zero(0) in Javascript

I have an array. I need to generate an alert if all the array items are 0. For example,

if myArray = [0,0,0,0];
then alert('all zero');
else
alert('all are not zero');

Thanks.



Solution 1:[1]

Using ECMA5 every

function zeroTest(element) {
  return element === 0;
}

var array = [0, 0, 0, 0];
var allZeros = array.every(zeroTest);

console.log(allZeros);

array = [0, 0, 0, 1];
allZeros = array.every(zeroTest);

console.log(allZeros);

Solution 2:[2]

Use an early return instead of 2, 3 jumps. This will reduce the complexity. Also we can avoid initialisation of a temp variable.

function ifAnyNonZero (array) {
  for(var i = 0; i < array.length; ++i) {
    if(array[i] !== 0) {
      return true;
    }
  }
  return false;
}

Solution 3:[3]

you can give a try to this :

var arr = [0,0,0,0,0];
arr = arr.filter(function(n) {return n;});
if(arr.length>0) console.log('Non Zero');
else console.log("All Zero");

Solution 4:[4]

No need to loop, simple join and reg expression will work.

var arr = [0,0,0,10,0];
if((/[^0]/).exec(arr.join(""))){
    console.log("non zero");
} else {
    console.log("I am full of zeros!");
}

Another slow way of doing it, but just for fun.

var arr = [0,0,0,0,10,0,0];
var temp = arr.slice(0).sort();
var isAllZeros = temp[0]===0 && temp[temp.length-1]===0;

Solution 5:[5]

Using Math.max when you know for certain that no negative values will be present in the array:

const zeros = [0, 0, 0, 0];  
Math.max(...zeros) === 0; // true

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3 Adesh Pandey
Solution 4
Solution 5