我正在尝试在画布游戏中创建“项目”列表。例如,一个名为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']
答案 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);