Javascript定义数组。 “arrayception”

时间:2012-03-10 08:31:16

标签: javascript arrays

我正在尝试在画布游戏中创建“项目”列表。例如,一个名为list的数组。每个元素必须包含有关每个项目的信息。第一个元素将包含不同的东西。我将使用'shift()'命令删除第一个。喜欢:

list.shift(); 
list[0]['name']
list[0]['id']
list[0]['x']
list[0]['y']
list[1]['name']
list[1]['id']
list[1]['x']
list[1]['y']

但我不知道如何定义这样的东西。通常我定义像

这样的数组

{"name" : xx, "id" : 5 ... }

但这就像:

list['name']
list['id']

2 个答案:

答案 0 :(得分:2)

使用:

var list = [];
list[0] = {name: 'xx', id: 0, /*etc*/};
list[1] = {name: 'yy', id: 1, /*etc*/};

它创建了一个对象数组。您可以像这样使用它:

var first = list.shift();
first.name; //=> xx
//or
var first = list[0];
first.name; //=> xx 

注意:使用{...}(对象文字)会创建Object,而不是Array。可以使用Array文字创建数组:[...]。虽然对象有时被称为关联数组,但它不是数组对象,因此{...}.shift()之类的东西不适用于对象。

答案 1 :(得分:1)

javascript中没有关联数组。 例如,当你做

var _array = []
_array["field1"] ="value";

您实际上是在向_array对象添加属性。

_array.field1 = value <=> _array["field1"] ="value";

所以如果你想创建一个对象集合,请执行

var collection =[];
var myObject = {"field1":"value1"};
collection.push(myObject);