新手寻求帮助:我有一组数字需要转换为返回原始数字的函数数组,因此我需要调用a[3]
来调用a[3]()
而不是[1,2,3] -> [
function () {return 1;},
function () {return 2;},
function () {return 3;}
]
。
例如:
{{1}}
我该怎么做呢?
答案 0 :(得分:2)
var arr = [1,2,3];
for (var i = 0; i < arr.length; i++)
arr[i] = (function(i) { return function() { return i; } })(i);
答案 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);