Javascript forEach to mimic.map()函数

Javascript forEach to mimic.map()函数,javascript,arrays,foreach,Javascript,Arrays,Foreach,我试图使用forEach()模拟array.map() 因此,我有一个带有值的numbers数组,我有自己的map函数来迭代数组,然后我将值推送到一个空数组empMap 稍后,我调用这个map函数,将每个值乘以2并打印出来 我应该得到双精度的输出为[2,4,6],而不是[1,2,3]。我不知道我哪里出错了 这是相同的。您需要将数组和回调作为参数传递,然后实际使用回调 var map=function(数组,回调){ var empMap=[]; array.forEach(函数(编号){ em

我试图使用forEach()模拟
array.map()

因此,我有一个带有值的
numbers
数组,我有自己的
map函数
来迭代数组,然后我将值推送到一个空数组
empMap

稍后,我调用这个map函数,将每个值乘以2并打印出来

我应该得到双精度的输出为[2,4,6],而不是[1,2,3]。我不知道我哪里出错了


这是相同的。您需要将数组和回调作为参数传递,然后实际使用回调

var map=function(数组,回调){
var empMap=[];
array.forEach(函数(编号){
empMap.push(回调(数字))
});
返回(empMap);
}
变量数=[1,2,3];
var doubles=映射(数字、函数(数字){
返回号码*2;
});

console.log(双倍);//[2,4,6]
您需要将数组和回调作为参数传递,然后实际使用回调

var map=function(数组,回调){
var empMap=[];
array.forEach(函数(编号){
empMap.push(回调(数字))
});
返回(empMap);
}
变量数=[1,2,3];
var doubles=映射(数字、函数(数字){
返回号码*2;
});

console.log(双倍);//[2,4,6]
您没有捕获用于映射定义的参数,因此…将参数传递给函数。Regardsy您没有捕获用于映射定义的参数,因此…将参数传递给函数。RegardsMinor诡辩-您在同一范围内使用名称
数字
两次,最好更改其中一个以避免阴影。我故意尽量避免更改OP,而不是选择仅调整必要的内容。不过OP应该是你评论的一部分。小诡辩-你在同一范围内使用了两次名称
数字
,最好更改其中一个以避免阴影。我故意尽量避免更改OP,而不是选择只调整必要的内容。不过,OP应该是你评论的一部分。
var map = function () {
  var empMap = [];
  numbers.forEach(function (number) {
    empMap.push(number);
    console.log('empMap', empMap);
  });
  return(empMap);
}

var numbers = [1, 2, 3];
//implement this line

var doubles = map(numbers, function (number) {
  return number * 2;
});
console.log(doubles); // [2, 4, 6]