从最新的第 3 版开始,我在这个特殊的练习中遇到了困难。这是高阶函数一章。本版第 5 章。练习提示如下:
“类似于some方法,数组也有every方法。当给定函数为数组中的每个元素返回 true 时,此方法返回 true 。在某种程度上,some是作用于数组的 || 运算符的一个版本,并且every就像 && 运算符。
将every实现为以数组和谓词函数作为参数的函数。编写两个版本,一个使用循环,一个使用some方法。”
在代码沙箱中,建议的函数如下所示:
function every(array, test) {
// Your code here.
}
测试样本如下所示:
console.log(every([1, 3, 5], n => n < 10));
// → true
console.log(every([2, 4, 16], n => n < 10));
// → false
console.log(every([], n => n < 10));
// → true
查看测试用例,我似乎无法弄清楚如何将数组参数传递给测试参数,其中测试参数可以是任何东西。作者只是说“谓词函数”。我想我可以坚持使用n作为变量,但似乎作者希望我编写自己的 array.prototype.every() 方法。
有没有人对这个练习的目的有任何见解?或者也许有人想指出我错过了什么?