初始化javascript函数数组
Initialize javascript functions array
我需要通过编程从字符串数组中创建一个Javascript函数数组。
例如,如果我的数组是这样的:
myArray = ['a', 'b', 'c', 'd']
我需要创建这样的东西:
myFunctArray = [
function(d) {
return d['a'];
},
function(d) {
return d['b'];
},
function(d) {
return d['c'];
},
function(d) {
return d['d'];
}
]
现在,我需要能够对任何数组进行编程,所以我尝试了这个:
for(var i = 0; i < myarray.length; i++){
myFunctArray.push(function(d){
return d[myArray[i]];
});
}
我得到的是一个函数与上一个完全相同的数组。我认为这是一个范围问题,但我找不到解决方案。我尝试了很多不同的变体,但没有成功,谷歌也没帮上忙。感谢任何帮助,谢谢!
在函数内部使用i
而不"冻结"值确实是一个范围问题。你可以用这个closure
来解决它
for(var i = 0; i < myarray.length; i++){
function(index) {
myFunctArray.push(function(d){
return d[myArray[index]];
});
}(i); // call immediately inline defined function
}
相关文章:
- 数组函数不适用于从元素文本创建的JavaScript数组
- 如何在javascript中求解pack数组函数
- 制作一个javascript的数组函数
- 获取元素的位置并创建它的数组函数
- 茉莉花中的 SpyOn javascript 数组函数
- 自定义数组函数不接受参数
- 使用原型的自定义数组函数.新的 MyArray(1,2,3,4) 不工作
- Java 脚本随机化数组函数
- 在 Restangular 集合上使用 lodash 数组函数
- 比较数组函数返回未定义
- Javascript中嵌套for循环与数组函数的性能
- 多维数组函数在JS中不起作用
- Javascript数组函数有我看不到的错误
- 数组函数外的javascript
- 在数组/函数中循环时使用换行符
- 拼接javascript数组函数获胜't删除项目
- 为什么不'这个js数组函数不能工作
- 如何在我自己的数组原型函数中使用数组函数
- 在javascript中定义数组函数
- Jquery动态树数组函数