Jquery如何创建二维和三维数组

时间:2013-10-31 09:28:04

标签: jquery jquery-ui

我是jquery的新手。我想创建一个这样的数组

var pos=[];
 pos['div1']['left']=200;
  pos['div2']['left']=400;
  pos['div3']['left']=600;

2 个答案:

答案 0 :(得分:1)

代码试图像关联数组一样使用数组。

当使用语法pos['div1']['left']时,解释器期望拥有div1属性的对象具有left属性。这与严格使用索引的整数的普通数组完全不同。普通数组不允许Strings用于访问数组的元素。

另一方面,关联数组或对象提供了这种灵活性。它们还允许对象嵌套在对象中。我相信这种数据结构可以更好地满足您的需求:

//Initial Object
var pos={};
//assign an object with a left property to the property div1 on the pos object
pos.div1 = {left:200};
pos.div2 = {left:400};
pos.div3 = {left:600};

alert(pos.div1.left);

//This data structure could be declared as one object literal upfront
var pos2 = {
   div1: {
         left: 200
    },
   div2: {
         left: 400
    },
   div3: {
         left: 600
    }
};

alert(pos.div2.left);
//You could also make an array of objects for easier iteration
var pos3 = [
 {
     name: "div1",
     left: 200
 },{
     name: "div2",
     left: 400
 },{
     name: "div3",
     left: 600
 }
];

alert(pos3[2].name);

JS小提琴: http://jsfiddle.net/u9QXs/

答案 1 :(得分:1)

您提出的方案看起来不像multi-dimensional数组,
但是,您仍然可以通过更改代码来实现您的需求

var pos= {'div1' :
               {'left' : 200},
          'div2' : 
               {'left' : 400}
          .
          .
          .
         };

您可以通过

访问它
 alert(pos.div1.left) //200