我一直對處理這個問題的最佳方式感到困惑。我過去一直使用的方法有效,但似乎必須有更好的方法。函數內部的Javascript中斷/返回函數
下面我有一段代碼,我想要爲函數getData
返回item
。問題出現在下面的示例中,它返回的功能不是getData
函數。
function getData() {
var array = ["element1","element2"];
array.forEach(function (item) {
if (item == "element2") {
return item;
}
});
}
我一直在做這樣的事情來克服這一點。
function getData() {
var array = ["element1","element2"];
var returnValue;
array.forEach(function (item) {
if (item == "element2") {
returnValue = item;
}
});
if (returnValue) {
return returnValue;
}
}
有沒有更好的方法來處理這個問題?看起來像那些額外的4行代碼只是在我的代碼中造成混淆和混亂。
['Array.prototype.find()'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find)or ['Array.prototype.indexOf' ](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – zerkms
如果你只是使用了for循環,你可以返回沒有問題。否則,你幾乎不得不做類似上面的事情。 – Whothehellisthat
儘管你可以通過刪除末尾的if語句來簡化它。如果returnValue沒有被設置,它將是'undefined',所以會返回undefined - 就像if失敗一樣;該函數無論如何都會返回'undefined'。 – Whothehellisthat