【发布时间】:2021-03-24 06:21:36
【问题描述】:
我目前正在使用 Eloquent javascript 学习 javascript。在第 5 章中,我了解了 filter() 函数内部的部分。但是不明白console.log里面的那行代码:
function filter(array, test) {
let passed = [];
for (let element of array) {
if (test(element)) {
passed.push(element);
}
}
return passed;
}
console.log(filter(SCRIPTS, script => script.living));
我不明白的那一行:
console.log(filter(SCRIPTS, script => script.living))
// → [{name: "Adlam", …}, …]
script=>script.living 做什么?请帮忙。
【问题讨论】:
-
这是一个arrow function。您的
test参数作为函数调用,因此将这个特定的箭头函数传递给它可以让filter通过检查每个元素的living属性的真实性来知道要在过滤后的数组中保留哪些成员。这是一个特别奇怪的范例,考虑到Array类的原型中已经包含一个filter()函数,它的工作原理与此非常相似/相同...
标签: javascript arrays object filter