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

How to get the value from customised forEach function returned to be used in callback?

假设 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 函数中获取值 'returned' 以用于回调。

提前致谢!

以下是使用 forEach 实现 map 的方法:

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