0

助けを求める初心者: 元の数値を返す関数の配列に変換する必要がある数値の配列があるため、 を呼び出す代わりに、a[3]call を呼び出す必要がありますa[3]()

例えば:

[1,2,3] -> [
    function () {return 1;}, 
    function () {return 2;}, 
    function () {return 3;}
]

どうすればこれを行うことができますか?

4

4 に答える 4

2
var arr = [1,2,3];

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

デモ

于 2012-05-16T01:18:47.937 に答える
1
[1, 2, 3].map(function(num) {
    return function(){ return num; }
});

タスクを実行する必要があります

于 2012-05-16T01:24:50.710 に答える
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] );
于 2012-05-16T01:19:08.147 に答える
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);
于 2012-05-16T01:26:38.370 に答える