将数组的每个值映射到给定函数以在JavaScript中返回新数组

时间:2016-09-05 17:01:36

标签: javascript arrays

以下代码抛出以下内容:

  

未捕获的TypeError:someFunction(...)不是函数

是什么导致抛出此异常?

map = function (someList, someFunction){
    var result =[];
    for (x = 0; x < someList.length; x++ ){
        result.push(someFunction(someList[x])());
    }
    return result;
};

map([1,2,3,4], function(num){
    return num * 10;
});

1 个答案:

答案 0 :(得分:1)

问题出在这一行

result.push(someFunction(someList[x])());
                                     ^^

这个额外的括号是多余的。您已经通过说someFunction来调用函数someFunction(someList[x])。通过添加这些额外的括号,您基本上试图调用someFunction(someList[x])的返回值,这是一个数字,而不是函数。