Javascript 调用存储在数组(js)中的计算
我有一个数组,我想做一个存储在数组中的计算 例如:Javascript 调用存储在数组(js)中的计算,javascript,arrays,Javascript,Arrays,我有一个数组,我想做一个存储在数组中的计算 例如: var Count = 0; var Test = [0,Count++,0,0]; 在函数中,我希望通过执行以下操作来增加变量计数: function Debug(){ Test[1]; } 我已经尝试了许多不同的方法,并且我成功地做到了: 当数组被声明或 无所事事 为每个数组单元创建一个新函数,这对于我正在尝试做的事情来说非常耗时。我想要更快/更简单的 我希望代码在声明数组时不运行,而是在调用特定数组单元格时运行,如果可能的
var Count = 0;
var Test = [0,Count++,0,0];
在函数中,我希望通过执行以下操作来增加变量计数:
function Debug(){
Test[1];
}
我已经尝试了许多不同的方法,并且我成功地做到了:
- 当数组被声明或
- 无所事事
- 为每个数组单元创建一个新函数,这对于我正在尝试做的事情来说非常耗时。我想要更快/更简单的
我希望代码在声明数组时不运行,而是在调用特定数组单元格时运行,如果可能的话,在整个过程中都不声明新函数。您需要以稍微不同的方式执行此操作。您需要将
计数
增量包装到它自己的函数中:
var Count = 0;
var Test=[0, function() { Count++ }, 0, 0];
function Debug() {
Test[1]();
}
然后调用函数:
var Count = 0;
var Test=[0, function() { Count++ }, 0, 0];
function Debug() {
Test[1]();
}
你可以这样做
var count = 0,
arr = [0,"count++",0,0],
runItem = Function("return " + arr[1]);
runItem(); // <- 0
runItem(); // <- 1
var计数=0,
arr=[0,“计数++”,0,0],
runItem=函数(“返回”+arr[1]);
runItem();// 您似乎在寻找语法的简单性。我看不出有什么办法能让你这么做。但是有一种方法可以在字段访问上运行函数。因此,这可能会以牺牲初始设置的复杂性为代价实现您想要的功能:
var Test = [0, "replace me", 0, 0];
Object.defineProperties(Test, {
1: {get: (() => {let count = -1; return () => ++count})()}
});
Test[0]; //=> 0
Test[1]; //=> 0
Test[2]; //=> 0
Test[3]; //=> 0
Test[0]; //=> 0
Test[1]; //=> 1
Test[2]; //=> 0
Test[3]; //=> 0
Test[1]; //=> 2
Test[1]; //=> 3
Test[1]; //=> 4
如果ES6 fat arrow语法令人困惑,则相当于:
Object.defineProperties(Test, {
1: {get: (function() {
let count = -1;
return function() {
return ++count;
};
})()}
});
JS,他对你做了什么(答对了!我避免了耗时的初始设置,我复制了一个带有相反符号的阵列(在我的项目中效果很好),一切都很好。非常感谢!