如何使用reduce在Javascript中返回对象?

如何使用reduce在Javascript中返回对象?,javascript,arrays,function,object,reduce,Javascript,Arrays,Function,Object,Reduce,我试图使用array.reduce()方法计算数组中奇数和偶数的数目。当我运行下面的代码时,我得到错误“odd未定义”。如何/在何处定义odd以使代码正常工作 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 { co

我试图使用array.reduce()方法计算数组中奇数和偶数的数目。当我运行下面的代码时,我得到错误“odd未定义”。如何/在何处定义odd以使代码正常工作

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;
 }, {});

嗯,奇数没有定义。您应该做的是在引号中加奇数/偶数(
counts['odd']
)或使用点符号(
counts.odd

此外,由于奇数和偶数未定义,因此增加它们将导致
NaN
。初始值应改为
{奇数:0,偶数:0}

var数字=[5,3,8,6,9,1,0,2,2];
var ODDEVENCOUTS=数字。减少(函数(计数,数字){
如果(编号%2==1){
计数['奇']++;
}否则{
计数['偶数]++;
}
返回计数;
},{奇数:0,偶数:0});

控制台日志(ODDEVENTCOUNTS)好吧,奇数没有定义。您应该做的是在引号中加奇数/偶数(
counts['odd']
)或使用点符号(
counts.odd

此外,由于奇数和偶数未定义,因此增加它们将导致
NaN
。初始值应改为
{奇数:0,偶数:0}

var数字=[5,3,8,6,9,1,0,2,2];
var ODDEVENCOUTS=数字。减少(函数(计数,数字){
如果(编号%2==1){
计数['奇']++;
}否则{
计数['偶数]++;
}
返回计数;
},{奇数:0,偶数:0});

控制台日志(ODDEVENTCOUNTS)这是一个可以为您执行此操作的函数

函数计数(arr){
常数计数={
偶数:0,,
奇数:0
};
arr.forEach(n=>{
如果(n%2==0){
计数。偶数++;
}否则{
奇数++
}
});
返回计数;
}
常量数组=[5,3,8,6,9,1,0,2,2];

log(oddEvenCounts(数组))这是一个可以为您执行此操作的函数

函数计数(arr){
常数计数={
偶数:0,,
奇数:0
};
arr.forEach(n=>{
如果(n%2==0){
计数。偶数++;
}否则{
奇数++
}
});
返回计数;
}
常量数组=[5,3,8,6,9,1,0,2,2];

log(oddEvenCounts(数组))
使用
计数。奇数
计数。偶数
而不是
计数[…]
或偶数
计数[“奇数”]
计数[“偶数”]
键必须是字符串…使用
计数。奇数
计数。偶数
而不是
计数[…]
或偶数
计数[“奇数”
计数[“偶数”]
键必须是字符串。。。