函数ev调用reduce函数洞察它并假设如果数组中的偶数(我传递给ev函数)则返回true,如果数组具有奇数则假设返回false . 我的代码适用于偶数,但是对于奇数而言则失败(显示为真)但我不知道为什么!有人知道为什么吗?
var even = function(num) {
return num % 2 === 0;
};
function reduce(array, init, func) {
var curr = init;
for (var i = 0; i < array.length; i++) {
curr = func(curr, array[i]);
}
return curr;
}
function ev(arr, func) {
if (arr.length > 0) {
if (reduce(arr, 0, func)) {
return true;
} else {
return false;
}
}
return true; //thats i the array is empty
}
ev([0, 11, 28], even);
1 回答
也许你应该在Javascript中使用内置的
map
/reduce
函数?Edit 1:
或者,更好的是,您可以使用偶数/奇数乘法的属性来检查以确保数组元素的乘积是偶数:
Edit 2:
现在我们很清楚我们想检查数组中的所有元素是否均匀,我们将得到以下代码: