2015-11-02 58 views
-8

所以我必須寫一個函數的計數零的個數在一個陣列編寫一個函數,返回給定數組中的零個數?

到目前爲止我只有

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

然後我卡或者甚至不知道我是否會關於它的寫方式

但零例如數量應在numberOfZeros 2([4,0,假,5,0]):

+4

是什麼讓你覺得你的代碼將數零的個數? – Oriol

+0

順便說一句,你認爲什麼是零:'+ 0','-0'或兩者? – Oriol

+0

我知道我可以計算字符串中的東西,所以我想也許轉換爲字符串會有所幫助。我真的不明白如何回答這個問題。 – Ravenna

回答

1

您需要.filter()0所有值,然後只讀.length的結果。

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

箭頭符號是_ES6_,如果您打算使用此答案,請檢查您的環境是否支持它。 –

+0

歡迎來到2015年。每個瀏覽器現在都支持Arrow功能。 – jAndy

+2

@jAndy https://kangax.github.io/compat-table/es6/ ie10沒有,android 5.0的默認瀏覽器沒有。歡迎來到2015. – TankorSmash

0

你可以試試:

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; 
} 
+0

numberOfZeros([4,0,false,5,0]):返回1而不是2 – Ravenna

+0

編輯,現在應該沒問題! –

0

可以遍歷元素,並檢查它們是否爲零:

var n = 0; 
for(var item of array) 
    if(item === 0) // Both +0 and -0 
    ++n; 
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);

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/

相關問題