如何从返回的自定义 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;
}
假设 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;
}