如何解决JS:作为参数传递给方法的函数从哪里获得参数?
我突出显示了我不知道其值来自何处的参数。数组不应该通过吗?这个不成立。一切都倒退了。数组值如何进入ages.some(checkAdult)
调用中?点之前的关键字是否会成为我想象的checkAdult
之后的括号中的参数?
为什么不去some(checkAdult(ages))
?
为什么将它附加到带点的东西的末尾?
var ages = [3,10,18,20];
function checkAdult(age) { // THIS LINE HERE,how does it link to the array???
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
<p>Click the button to check if any of the elements in the array has a value of 18 or more.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
解决方法
通常(但并非总是),用户提供的功能由高阶功能调用。
在下面的示例some
中,使用f
的每个元素调用t
,直到找到第一个真实结果。否则,将返回错误结果。
const some = (f,t) =>
t.length === 0
? false
: Boolean(f(t[0])) // f gets called by some
|| some(f,t.slice(1))
console.log(some(v => v > 30,[ 10,20,30,40 ]))
// true
console.log(some(v => v > 99,40 ]))
// false
或同一程序的迭代版本-
function some (f,t)
{ for (const v of t)
if (Boolean(f(v)))
return true
return false
}
console.log(some(v => v > 30,40 ]))
// false
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。