如何使用reduce在Javascript中返回对象?
我试图使用array.reduce()方法计算数组中奇数和偶数的数目。当我运行下面的代码时,我得到错误“odd未定义”。如何/在何处定义odd以使代码正常工作如何使用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
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(数组))
使用计数。奇数和计数。偶数而不是计数[…]
或偶数计数[“奇数”]
和计数[“偶数”]
键必须是字符串…使用计数。奇数和计数。偶数而不是计数[…]
或偶数计数[“奇数”
和计数[“偶数”]
键必须是字符串。。。