.filter javascript 和定义变量

.filter javascript and defining variable

好的,问题来了 如果人口少于 5,我正在尝试使用 .filter 方法提取动物的名称。将 lowPop 设置为新数组,但它总是以未定义的形式返回。我不确定为什么有人可以帮忙?

我附上了一张图片以显示问题的内容以及我的代码。我发现我的 var 是未定义的,我的代码返回布尔值 true 或 false 响应。预期的响应在图片中。非常感谢任何帮助。

code and question with expected/error pic

function lowPopulationAnimals(){
const lowPop = [];
zooAnimals.filter((element => {
lowPop.push(element.population <= 5 );
}));

console.log(lowPopulationAnimals);

注意:

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

用于创建新数组,不用于修改新数组。

此外,您不应在 array.filter 中使用 pushfilter 是对数组的测试 运行 并创建数组中所有元素的副本通过测试。

此外,您直接将 function_name 分配给 console,这是不正确的。

使用:

function lowPopulationAnimals(){
let lowPop = [];
 lowPop = zooAnimals.filter(element =>element.population <= 5 )
console.log(lowPop);
}

lowPopulationAnimals();

当您将一个函数传递给另一个函数时(就像您对“过滤”所做的那样),它会传递一个只能访问您提供的数据的函数。调用过滤器时,它会将每个元素传递给您提供的函数,如果它的值 returns 计算结果为真,则保留它,否则将其删除。查看回调函数,并查看文档中的 here