【发布时间】:2017-06-29 18:18:30
【问题描述】:
不知道如何解释。我会用一个例子来试试。
例如,我使用以下函数作为数组上 for 循环的缩写:
function forEach(array, f) {
var len = array.length, i;
for (i = 0; i < len; i += 1) {
f(i, array[i], len);
}
};
我想这并不少见。但是在函数中替换以下for循环时会导致问题:
function test(someArray) {
for (var i = 0; i < someArray.length; i++) {
if (someArray[i] === 23) {
return true;
}
}
return false;
}
替换:
function test(someArray) {
forEach(someArray, function(i, value) {
if (value === 23) {
return true;
}
});
return false;
}
到达23时不返回函数test并返回true,但继续执行forEach之后的语句并返回false。
【问题讨论】:
-
请添加一些数据和想要的结果。检查
23可以导致true、23或[23, 23]的集合。 -
@NinaScholz 好吧,这只是一个例子。我正在寻找一个通用的解决方案。我想也许有一种方法可以将 return 语句直接发送到父函数。但可能没有这样的事情。
-
@gavgrif 谢谢。修好了。
标签: javascript for-loop return