gpt4 book ai didi

javascript - 是否可以在 javascript 中制作二维关联数组?

转载 作者:行者123 更新时间:2023-11-30 10:52:23 25 4
gpt4 key购买 nike

我只想要这样的数据:

var _2dimen = {};

_2dimen['window1']['panel1'] = '2010-10-01'
_2dimen['window1']['panel2'] = '2010-10-01'
...
_2dimen['window3']['panel1'] = '2010-10-01'

哪个窗口和面板号是动态的。这意味着我可以使用以下模式:我的意思是:窗口和面板的变量在我的情况下是动态创建的,窗口可能是window1或window2 ...,面板可能是panel2,panel4。

var window = windowNumber, panel= panelNumber;

_2dimen[window][panel] = 'some date here';

如何构造代码以分配和编辑值?

我写的代码正是我所想的,但它不起作用!! _2dimen[window] = 'data' 工作正常 我添加了 [panel]

 _2dimen[window][panel] = 'data' the firebug prompts me that :

_2dimen[window] is undefined
_2dimen[window][panel] = date;

非常感谢!

最佳答案

在 JS 中有些人所说的“关联数组”只是对象:

var twoD = { window1: {
panel1: '2010-10-01',
panel2: '2010-10-02',
...
},
window3: {
panel1: '2010-12-01',
...
}
};

如果您实际上将索引命名为“window1”和“panel2”,更好的方法是使用数组。这样,您可以遍历面板和窗口,但仍然可以在顶级对象和窗口上设置其他属性。

var twoD = { windows: [
{ panels: ['2010-10-01', '2010-10-02', ...
...
// window3
{ panels: ['2010-12-01']}
],
foo: 'bar'
};
...
twoD.windows[0].panels[1] // '2010-10-02'

请记住,标识符不能以数字开头。

如果设置在 windows 上的面板跳过一些索引,您也可以这样做。请注意,您不能设置未定义值的属性。当 _2dimen[window] 未定义时,_2dimen[window][panel]={} 失败。在访问次要索引处的元素之前,您需要测试并设置主要索引处的元素。

function TwoD() {
this.windows = [];
}
TwoD.prototype.window = function(i) {
if (! this.windows[i]) {
this.windows[i] = {panels: []};
}
return this.windows[i];
};
...
var wall = new TwoD();
wall.window(2).panels[1] = '2010-12-02';

这与您当前的实现非常接近,但具有在设置其他属性时允许在窗口和面板上进行迭代的优势。

关于javascript - 是否可以在 javascript 中制作二维关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com