函数接受一个数组作为参数,并返回数组中奇数元素的计数



我是Javascript的新手,我正在学习它的课程。我得到了一个任务来创建一个函数,该函数旨在将数组作为协议(没有特定的数组或他的元素给定),以计算奇数元素的数量并返回奇数元素的数量。

所以我做了这样的事情,但任务似乎没有完成。这里出了什么问题?

var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;
return count++;
}
}

您在代码的早期返回

var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;
return count++; // Here you return when you find the first odd and exit the function so other odds are not counted for
}
}

你需要在循环完成后返回计数

var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;

}
return count;
}

另一种计数奇数元素并获得其出现总数的方法是使用Array。原型#filter和长度如下:

function count_odd_nums(arr){
var count = arr.filter(item => item % 2 !== 0).length
return count;
}
console.log(count_odd_nums([1,2,3,4,5,6,7,8,9,10]));

它的作用如下。它使用array# filter方法根据谓词函数对数组中的元素进行过滤。在本例中,谓词函数检查一个数字是否为奇数。然后,它返回一个新数组,其中包含传递给谓词函数的元素(在本例中都是奇数)。之后,我们可以简单地使用该数组的.length方法来找出我们找到了多少个奇数

看一下Array.prototype#filter

的MDNhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

最新更新