0

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

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

2 回答 2

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/

于 2013-10-31T09:33:48.563 回答
1

你问的场景看起来不像一个multi-dimensional数组,
但你仍然可以通过像这样更改代码来满足你的需求

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

您可以通过以下方式访问它,

 alert(pos.div1.left) //200
于 2013-10-31T09:35:49.123 回答