javascript - 如何从自定义的 forEach 函数中获取返回值以在回调中使用?

标签 javascript arrays foreach callback return

假设 myArray 如下:

var myArray = [1,2,3,4];

当应用“ map ”时,我希望我的结果如下:

map(myArray, function(val){
return val * 2;
});
//[2, 4, 6, 8]

我已经能够使用以下代码来做到这一点:

var map = function(collection,callback){
    var newArray = [];
    for (var i = 0; i < collection.length; i++){
        newArray.push(callback(collection[i]));
    }
    return newArray;
}

但是,如果我之前已经自定义了“forEach”函数(如下所示),并且想在“map”函数中使用自定义的“forEach”函数,我该怎么做?

var forEach = function(collection,callback){
    if(Array.isArray(collection)){
        for(var i = 0; i < collection.length; i++){
            callback(collection[i]);
            }
    } else {
        for(var prop in collection){
            callback(collection[prop]);
            }
    }
 };

我很难从自定义的 forEach 函数“返回”中获取要在回调中使用的值。

提前致谢!

最佳答案

以下是如何使用 forEach 实现 map:

var map = function(collection,callback){
    var newArray = [];
    forEach(collection, function(v) { 
        newArray.push(callback(v)); 
    });
    return newArray;
}

关于javascript - 如何从自定义的 forEach 函数中获取返回值以在回调中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712116/

相关文章:

javascript - 如何使用 requireJS 访问模块变量?

javascript - libphonenumber(google 和 libphonenumber-js)库可以在中国使用吗?

javascript - window.location 改变时中断?

arrays - 混合数组遵守某些约束的算法

javascript - JS 将数组值合并为一个值

javascript - 将数据从 Node.js 发送回客户端?

jquery - 如何创建 JSON 数组?

r - Foreach 和 doparallel 而不是 R 中的 for 循环

css - 带 if 的 knockout.js 数据绑定(bind)循环

php - 合并具有相同数量项目的 2 个数组 - php