Javascript,在我编写的映射函数中,非常简短

Javascript,在我编写的映射函数中,非常简短,javascript,arrays,callback,Javascript,Arrays,Callback,我试图将我的函数映射应用于数组的每个元素,然后返回新数组。有人能告诉我为什么这不起作用吗 function addTwo(num) { return num+2; } function map(array, callback) { var new=[]; for(var i=0;i<arr.length;i++) { new.push(callback(array[i])); } } var arr=[2,4,6,8];

我试图将我的函数映射应用于数组的每个元素,然后返回新数组。有人能告诉我为什么这不起作用吗

function addTwo(num)
{
 return num+2;
}

function map(array, callback)
{ 
  var new=[];
   for(var i=0;i<arr.length;i++)
   {
     new.push(callback(array[i]));
   }  
}
var arr=[2,4,6,8];              
console.log(map(arr, addTwo));
函数addTwo(num)
{
返回num+2;
}
函数映射(数组、回调)
{ 
var new=[];

对于(var i=0;i我想您需要了解哪里出了问题,因此,这里是您的代码重写,并指出了两个错误-
new
是保留关键字,您不能有一个名为
new
的var-您说您希望map函数返回一些东西,所以,您应该
返回一些东西

function addTwo(num) {
    return num+2;
}

function map(array, callback) { 
    var ret=[]; // use a non-reserved name for the array
    for(var i=0; i<arr.length; i++) {
        ret.push(callback(array[i]));
    }
    return ret; // if you want to return it, then return it
}
var arr=[2,4,6,8];              
console.log(map(arr, addTwo));
函数addTwo(num){
返回num+2;
}
函数映射(数组,回调){
var ret=[];//为数组使用非保留名称
对于(var i=0;i使用内置函数,如下所示:

函数addTwo(num){
返回num+2;
}
var数组=[1,7,5,4];

console.log(array.map(addTwo))
您看到控制台中的错误了吗?问题1-
新建
是一个保留关键字-问题2-您没有使用内置数组方法来简化您的工作,问题3-您的map函数创建一个数组,将内容推送到该数组,然后对其不做任何操作,您说要返回新数组,但您的函数没有返回任何内容这是一个不言而喻的问题。下次,请描述一下你遇到的问题,而不是仅仅说它不起作用。扔掉
函数映射
,你会看到
控制台.log(arr.map(addTwo))
会做你想做的事谢谢,问题是新的被保留了。我如何标记你已经回答了这个问题@JaromandaXno,有两个问题-你的map函数没有返回任何东西-添加了一个答案-