数组中包含对象的Javascript
我有一段代码,用于在photoshop中创建包含4个面板的对话框。当我不在循环中运行它时,它工作得很好,但是代码又大又难看。现在我得到一个错误,说“panel1未定义”。我不能像这样将对象放入数组吗数组中包含对象的Javascript,javascript,arrays,Javascript,Arrays,我有一段代码,用于在photoshop中创建包含4个面板的对话框。当我不在循环中运行它时,它工作得很好,但是代码又大又难看。现在我得到一个错误,说“panel1未定义”。我不能像这样将对象放入数组吗 // create a dialog window, dig.panel = dialog panel var dig = new Window('dialog', 'Poster Interface - Choose 4 Images', [550, 120, 1150, 800]); //de
// create a dialog window, dig.panel = dialog panel
var dig = new Window('dialog', 'Poster Interface - Choose 4 Images', [550, 120, 1150, 800]);
//define variables for panel dimensions
var digX = 100;
var digY = 50;
var digWidth = 510;
var digHeight = 140;
var digUp = 110;
var panels = [
[panel1, panel2, panel3, panel4]
];
var labels = [
[label1, label2, label3, label4]
];
var texts = [
[t1, t2, t3, t4]
];
var buttons = [
[bt1, bt2, bt3, bt4]
];
//create panels for the image components
//first loop for panel dimensions multiply by x
// nested loop for contents using i
for (x = 0; x < 4; x++) {
dig.panels[x] = dig.add('panel', [digX, digY + (digUp * x), digWidth, digHeight + (digUp * x)], 'Image ' + (x + 1) + ':');
for (i = 0; i < 4; i++) {
dig.panels[i].labels[i] = dig.panels[i].add('statictext', [20, 20, 120, 40], 'Choose Image' + (i + 1) + ':');
dig.panels[i].texts[i] = dig.panels[i].add('edittext', [125, 20, 325, 40], 'image' + (i + 1) + '.jpg');
dig.panels[i].buttons[i] = dig.panels[i].add('button', [330, 20, 380, 40], 'Open');
}
}
//创建一个对话框窗口,dig.panel=对话框面板
var dig=新窗口('dialog','Poster Interface-选择4个图像',[5501201150800]);
//定义面板尺寸的变量
var-digX=100;
var digY=50;
var digWidth=510;
var digHeight=140;
var digUp=110;
变量面板=[
[小组1、小组2、小组3、小组4]
];
变量标签=[
[标签1,标签2,标签3,标签4]
];
变量文本=[
[t1、t2、t3、t4]
];
变量按钮=[
[bt1、bt2、bt3、bt4]
];
//为图像组件创建面板
//面板尺寸的第一个循环乘以x
//使用i的内容的嵌套循环
对于(x=0;x<4;x++){
dig.panels[x]=dig.add('panel',[digX,digY+(digUp*x),digWidth,digHeight+(digUp*x)],'Image'+(x+1)+':');
对于(i=0;i<4;i++){
dig.panels[i].标签[i]=dig.panels[i].添加('statictext',[20,20,120,40],'Choose Image'+(i+1)+':');
dig.panels[i].text[i]=dig.panels[i].add('edittext',[125,20,325,40],'image'+(i+1)+'.jpg');
dig.panels[i].按钮[i]=dig.panels[i].添加('button',[330,20,380,40],'Open');
}
}
这伤了我的头。如需在javascript中创建变量数组,请提供任何建议:
var var1 = "value";
var var2 = "value";
var array = [var1,var2];
您正在创建一个数组,其中包含一个数组,内部数组中包含变量
var panels = [
[panel1, panel2, panel3, panel4]
];
您没有向我们显示这些变量已经定义
这是一把小提琴:
使用以下代码:
var var1 = "value";
var var2 = "value";
var array = [var1,var2];
var array2 = [[var1,var2]];
console.log(array);
console.log(array2);
去那里看看控制台。您会注意到数组2的长度仅为1,而数组的长度为2。因此,您需要定义变量,然后以您想要的格式构建数组(您真的想要数组数组吗?),然后您可以循环并添加属性
此外,对象在javascript中也有其含义。在javascript中,通常可以看到使用对象文字语法创建的对象
Object = {
property1 : "property",
property2: "property"
}
所以当你问你是否可以有一个对象数组时,是的,你可以。但是,您必须首先创建这些对象及其属性。您有
var-panels=[[panel1、panel2、panel3、panel4]代码>但是panel1
从哪里来?可能遗漏了一些引语?我想我开始意识到了。我在声明,但没有初始化?panel1、panel2、panel3、panel4未定义…好的,谢谢,伙计,我想我会回到没有循环的状态。不要放弃!你能行-I’我再试试,然后回来问具体问题!