编写一个返回给定数组中零的数量的函数?

时间:2015-11-02 23:23:55

标签: javascript

所以我必须编写一个函数来计算数组中的零个数

到目前为止,我所拥有的只是

numberOfZeros= function(arry) {
    if(!(Object.prototype.toString.call(arry) === '[object Array]')){
        arry.toString();
    }
}

然后我陷入困境甚至不确定我是否会以写作的方式解决这个问题

但是例如零的数量应该是numberOfZeros中的2([4,0,false,5,0]):

5 个答案:

答案 0 :(得分:1)

您需要.filter()获取0的所有值,然后只需阅读结果的.length

return arry.filter(v => v === 0).length;

答案 1 :(得分:1)

您可以尝试:

numberOfZeros = function (arry) {
    var c = 0;
    for (var k in arry) {
        if (arry[k] === 0 && arry[k] === parseInt(arry[k], 10)) {
            c += 1;
        }
    }
    return c;
}

答案 2 :(得分:0)

您可以迭代元素并检查它们是否为零:

var n = 0;
for(var item of array)
  if(item === 0) // Both +0 and -0
    ++n;

答案 3 :(得分:0)

一种可能的解决方案:

var numberOfZeros = function(arry) {
  var i = 0;
  arry.forEach(function(v) {
    if (v === 0) i++;
  });
  return i;
}


var count = numberOfZeros([4, 0, false, 5, 0]);

alert( count );

答案 4 :(得分:0)

那么你可以使用这种方法,创建一个新数组并将主数组中的所有零推送到新数组中,然后只获取新数组的.length

function numberOfZeros(array) {
    var zeros = [];
    for(var i = 0; i < array.length; i ++){
        if(array[i] === 0) {
            zeros.push(array[i]);
        }
    }
    console.log(zeros.length);
}

numberOfZeros([4, 0, false, 5, 0]);

JSFIDDLE - https://jsfiddle.net/ToreanJoel/3j2zpgnm/