假设 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/