2017-09-25 53 views
0

我想通過使用Array.reduce()方法來統計數組中的奇數和偶數。當我運行下面的代碼時,出現「奇數未定義」的錯誤。我如何定義奇數以獲得此代碼的工作?如何使用reduce來返回Javascript中的對象?

var numbers = [5, 3, 8, 6, 9, 1, 0, 2, 2]; 
var oddEvenCounts = numbers.reduce(function(counts, number) { 
    if (number % 2 === 1) { 
    counts[odd]++ 
    } else { 
    counts[even]++; 
    } 
    return counts; 
}, {}); 
+2

使用'counts.odd'和'counts.even'代替'計數[....]'或'甚至計數[ 「奇數」]'和'計數[」甚至「]' – Titus

+0

鑰匙必須是字符串... – Li357

回答

4

好吧,奇數沒有定義。你應該做的是把奇數/偶數加在引號(counts['odd'])或使用點符號(counts.odd)。

此外,由於奇數和偶數沒有定義,遞增它們將導致NaN。初始值應該是{ odd: 0, even: 0 }

var numbers = [5, 3, 8, 6, 9, 1, 0, 2, 2]; 
 
var oddEvenCounts = numbers.reduce(function(counts, number) { 
 
    if (number % 2 === 1) { 
 
    counts['odd']++; 
 
    } else { 
 
    counts['even']++; 
 
    } 
 
    return counts; 
 
}, { odd: 0, even: 0 }); 
 
    
 
console.log(oddEvenCounts);

相關問題