[英]Handle return statement in a better way
那是我的 function:
const checkifHaveBomb = (column, row) => {
let isBomb = false
activeBombContainer.forEach(element => {
if (element.column === column && element.row === row) {
isBomb = true;
return;
}
})
if (isBomb) return true;
else
return false;
}
這是我的第一次嘗試:
const checkifHaveBomb = (column, row) => {
activeBombContainer.forEach(element => {
if (element.column === column && element.row === row) {
return true;
}
})
return false;
}
我在想退貨將結束 function,但我沒有工作。 我想 return 語句適用於 forEach 而不是 checkifHaveBomb。
有更好的方法來寫這個嗎?
return
結束 function, forEach
只為每個元素調用 function
如果你想完成,你可以嘗試使用some
並返回true
:
const checkifHaveBomb = (column, row) => {
let isBomb = false
activeBombContainer.some(element => {
if (element.column === column && element.row === row) {
isBomb = true;
return true;
}
})
if (isBomb) return true;
else return false;
}
甚至更短:
const checkifHaveBomb = (column, row) => {
return activeBombContainer.some(element => {
if (element.column === column && element.row === row) {
isBomb = true;
return true;
}
})
}
您也可以只使用普通的for..of
循環
const checkifHaveBomb = (column, row) => {
for (const element of activeBombContainer) {
if (element.column === column && element.row === row) {
return true
}
}
return false
}
您可以使用Array.prototype.some
代替forEach
。
const checkifHaveBomb = (column, row)
=> activeBombContainer.some( element=>element.column === column && element.row === row);
正如您所推測的,每次調用后都會丟棄Array.prototype/forEach
的參數 function 的返回值。
您希望遍歷activeBombContainer
數組,直到條件返回true
。 聽起來像find function 可能適合您的需求:
find() 方法返回提供的數組中滿足提供的測試 function 的第一個元素。 如果沒有值滿足測試 function,則返回 undefined。
您應該能夠如下編寫 function
checkifHaveBomb = (column, row) => {
return activeBombContainer.find(element => {
return element.column === column && element.row === row
})
}
或者,您可以使用一些function 因為它返回boolean
值。
checkifHaveBomb = (column, row) => {
return activeBombContainer.some(element => {
return element.column === column && element.row === row
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.