如何在ExtJS中创建动态数组变量名
本文关键字:动态 数组 变量名 创建 ExtJS | 更新日期: 2023-09-27 18:21:28
我有一个数组变量,如下所示:
var subPriceSelectedIdxArray = [];
在另一个中,我有一个生成计数器变量,如下所示:
int counter = 0;
for(i=0;i<10;1++)
{
counter += 1;
}
我想把这两个变量组合起来,因为我需要一个动态变量。所以我有一个动态变量,比如subPriceSelectedIdxArray1、subPriceSelected IdxArray2、subPriceSelectedIdxArray3、subPriceSelectedIdxArray等
我创建这个代码:
listeners: {
select: function (selectionModel, selected, idx, opt) {
window[subPriceSelectedIdxArray + index].push(idx);
}
但是当我将idx推送到window[subPriceSelectedIdxArray + index]
时,它会出错。该错误是未定义的变量。
可以创建动态数组变量名吗?
您想要做的事情是可能的。但不推荐。
让我们先回答问题。为了动态地标记像subPriceSelectedIdxArray2
这样的变量名,您必须像现在这样将其附加到window
中,但通过这种方式:
window['subPriceSelectedIdxArray' + index] = idx;
// if index is 1, this will create a variable called subPriceSelectedIdxArray1
// if index is 2, this will create a variable called subPriceSelectedIdxArray
这个变量和subPriceSelectedIdxArray
无关,它不是一个数组,而是一个Number
。
话虽如此,看起来你想要的是一个数组,因为你想要一个变量来存储多个变量,并通过它们的索引来查找它们。这是做你想做的事情的正确方式。也许你有充分的理由不这样做?如果是,为什么?
为此你应该做:
var subPriceSelectedIdxArray = []
和:
select: function (selectionModel, selected, idx, opt) {
// Make sure this array is defined
subPriceSelectedIdxArray[index] = subPriceSelectedIdxArray[index] || [];
subPriceSelectedIdxArray[index].push(idx); }
或:
select: function (selectionModel, selected, idx, opt) {
// Make sure this array is defined
subPriceSelectedIdxArray[index] = subPriceSelectedIdxArray[index] || [];
subPriceSelectedIdxArray[index][idx] = idx; }