Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中包含对象的Javascript_Javascript_Arrays - Fatal编程技术网

数组中包含对象的Javascript

数组中包含对象的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

我有一段代码,用于在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]);

//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’我再试试,然后回来问具体问题!