Expected Input:
var arr = [null, 7, 9, undefined, 5, , 0, 8, 2, 1]
console.log(arr.length);
Expected Output:
Length: 7
You can do this way using filter(), it will filter out null and undefined but will keep 0.
var array = [null, 7, 9, undefined, 5, , 0, 8, 2, 1];
console.log(array.filter(n=> n == 0 || n ).length)
You can simply use .filter() method and Number.isFinite to get only numbers from array and ignore all falsy values except 0 like this:
var arr = [null, 7, 9, undefined, 5, , 0, 8, 2, 1]
arr = arr.filter(Number.isFinite);
console.log(arr);