请考虑以下代码:
let sites = ['cnn.com', 'nbc.com'];
if (sites.some(site => location.hostname.includes(site))) {
// Do stuff...
}
我理解some()
方法检查数组是否包含某些内容,但我不明白具体用法:
(site => location.hostname.includes(site))
这个箭头在我看来并不像箭头功能,因为它之后没有{}
。此外,在我看来, site 这个词有一个“重复”。
如何构建和处理此语句,尤其是箭头和看似重复的内容?
答案 0 :(得分:2)
表达式:
site => location.hostname.includes(site)
依赖于箭头函数的隐式返回,它相当于:
site => {
return location.hostname.includes(site)
}
在隐式返回对象时也要小心,而不是:
() => { prop1: "value", prop2: "value2"}
应该是:
() => ({ prop1: "value", prop2: "value2"})
答案 1 :(得分:0)
此代码
site => location.hostname.include(site)
与
相同function(site) {
return location.hostname.include(site)
}
为数组中的每个项调用该函数。在这种情况下cnn.com
和cnbc.com
some()
函数检查其中一个函数返回true。如果其中一个函数返回true,
ex:location.hostname.include('cnn.com')
返回true
some()
函数将返回true