我试图使用some函数作为回调来过滤数组,并且只有元素是另一个数组的乘数。
function sumOfNumbersDivisibleByAnyFunctional(upTo) {
var numbers = [];
for(var i = 0;i<=upTo; i +=1){
numbers.push(i);
}
function filterByArr(arr){
return function (el){
return arr.some(multiplier => el % multiplier === 0);
}
}
return numbers.filter(filterByArr(arguments));
}
但无论我怎么试试,我都会收到错误,说arr.some
不是函数。
知道我错过了什么吗?
我也尝试过:
return numbers.filter(noToTest => arguments.some(multiplier => noToTest % multiplier === 0));
如果这叫:
sumOfNumbersDivisibleByAnyFunctional(10,3,5)
它将创建一个介于0-10之间的数字数组,并仅返回乘数为3或5的数字。
我不认为这应该作为How can I convert the “arguments” object to an array in JavaScript?
的副本关闭。如上所述,这是上述代码的问题,但没有回答原始问题。作为参考,我会将问题保持开放,并在答案中解释正确的解决方案。