如何在子函数中返回值

How to return a value within a subfunction?

本文关键字:返回值 子函数      更新时间:2023-12-21

我想在找到元素后立即返回第一个函数。

这只是一个例子:

function foo(arr) {
    arr.forEach(function (e) {
      if (e == 4)
        return true // this obviously does not return the foo function
    });
    return false
}

仅仅因为我们有像forEach这样的奇特函数,并不意味着当你需要它们时,你仍然不能使用普通的for循环:

function foo(arr) {
    for (var x = 0; x < arr.length; x++) {
        if (arr[x] == 4)
            return true;
    }
    return false;
}

使用Array#some()

some()方法测试数组中的某个元素是否通过了所提供函数实现的测试。

some()为数组中存在的每个元素执行callback函数一次,直到它找到一个callback返回真值的元素为止。如果找到这样的元素,some()立即返回true。否则,some()返回false。CCD_ 12仅被调用用于已分配值的数组的索引;对于已删除或从未赋值的索引,不会调用它。

function foo(arr) {
    return arr.some(function (e) {
        return e == 4;
    });
}
document.write(foo([1, 2, 3, 4]) + '<br>');
document.write(foo([1, 2, 3, 42]) + '<br>');

如果您不想简单地使用老式的for,也可以在foo函数的作用域中设置一个变量。

function foo(arr) {
    var result = false;
    arr.forEach(function (e) {
      if (e == 4)
        result = true;
    });
    return result
}