我有一個數組。我有一個函數來檢查數組是否包含數字'2'。退貨退出功能
如果找到這個數字,我希望函數返回true。如果不是,它應該返回false。
我寫了這個:
function hasTwo(arr) {
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
return true
}
})
console.log("No two :(")
return false
}
let arr = [1,2,3,4,5,6]
console.log(hasTwo(arr))
我的期望是,在第二一個foreach迭代,如果條件得到滿足,函數將返回true。
然而,這是控制檯輸出:
Two!
No two :(
false
我認爲,第一return語句從條件塊,不封閉函數返回。 (是嗎?)
我已經重寫的功能與一個變量來存儲返回值:
function hasTwo(arr) {
let result = false
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
result = true
}
})
return result
}
但我沒有看到持續的,如果X功能點=== 2條件已被滿足。有沒有辦法返回一個值並立即退出函數?
你在回調函數中返回值 –
爲什麼不使用'.filter()'? – evolutionxbox
@evolutionxbox:因爲過濾器不會退出迭代嗎? – Bergi