可以将一组数字转换为函数数组吗?

时间:2012-05-16 01:15:02

标签: javascript

新手寻求帮助:我有一组数字需要转换为返回原始数字的函数数组,因此我需要调用a[3]来调用a[3]()而不是[1,2,3] -> [ function () {return 1;}, function () {return 2;}, function () {return 3;} ]

例如:

{{1}}

我该怎么做呢?

4 个答案:

答案 0 :(得分:2)

var arr = [1,2,3];

for (var i = 0; i < arr.length; i++)
    arr[i] = (function(i) { return function() { return i; } })(i);

DEMO

答案 1 :(得分:1)

function convert( arr ) {
    for ( var i = 0; i < arr.length; i++ ) {
        arr[i] = (function( a ) { return function() { return a; }; })( arr[i] );
    }
    return arr;
}​

var arr = convert( [1, 2, 3] );

答案 2 :(得分:1)

[1, 2, 3].map(function(num) {
    return function(){ return num; }
});

应该完成任务

答案 3 :(得分:0)

function transform(a) {
    var result = [];

    for (var i = 0; i < a.length; i++)
        result.push(function(value) {
            return function() {
                return value;
            }
        }(a[i]));

    return result;
}

var myArray = [1, 2, 3];
var transformed = transform(myArray);