2012-03-10 16 views
1

私はキャンバスゲームで「アイテム」のリストを作成しようとしています。たとえば、listという名前の配列です。各要素には、各項目に関する情報が含まれている必要があります。最初の要素には何か異なるものが含まれます。私は 'shift()'コマンドで最初のものを削除します。 Like:Javascript defining array。 "arrayception"

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

を行う '{...}'、それは(文字通り)オブジェクトです。 – delnan

答えて

1

javascriptには連想配列はありません。あなたが実際に_arrayオブジェクトにプロパティを追加する

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

を行うので、例えば 、。あなたがオブジェクトのコレクションを作成したい場合は、配列ではありません

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

ので、

var collection =[]; 
var myObject = {"field1":"value1"}; 
collection.push(myObject); 
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()のようなものはオブジェクトに対しては機能しません。

+0

どうすればJSON.stringifyを使ってWebソケット経由で送ることができますか? – deniz

+0

リスト・オブジェクト – Arend

+0

をシリアル化するだけで、答えがわかります: 'var liststr = JSON.stringify(list)' '[{" name ":" xx "、" id ":0}、{" name ":" yy "、" id ":1}]" '、' var list2 = JSON.parse(liststr) 'は文字列をobectの配列に戻します。この文字列は、私が想定しているウェブソケットを通して送信することができます。これはこの質問の領域外です。答えのために – KooiInc