我一直对处理这个问题的最佳方法感到困惑。我过去一直使用的方法有效,但似乎必须有更好的方法。
下面我有一段代码,我想为函数 getData
返回 item
。问题在于下面的示例中,它返回的是 forEach
函数,而不是 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#some
The
some()
method tests whether some element in the array passes the test implemented by the provided function.
function getData() {
var array = ["element1","element2"];
var returnValue;
array.some(function (item) {
if (item == "element2") {
returnValue = item;
return true;
}
});
return returnValue;
}
或者,如果您使用 ES6,请使用 Array#find
The
find()
method returns avalue
in the array, if an element in the array satisfies the provided testing function. Otherwise undefined isreturned
.
function getData() {
var array = ["element1","element2"];
return array.find(item => item == "element2");
}
关于函数内的 JavaScript 中断/返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39069022/