0

オブジェクトにデータを保存しています(後でjsonに変換したいため)。

var myObject = new Object();

myObject.name = "John";
myObject.name = "James";

ループして各名前を出力できるように、配列のように扱いたいので、これがどのように機能するかはよくわかりません

myObject[i]['name'];

どこが間違っていますか?

4

2 に答える 2

0

あなたがしたようにそれをすることはできません。このようにしてみてください:

var myObjectNames = []; // means a new Array, or you can use: new Array() instead;

次のように新しい名前を追加できます。

myObjectNames.push("John");
myObjectNames.push("James");

次に、それらをすべて出力します。

for(var x in myObjectNames) {
    console.log(myObjectNames[x]); // will output your names in the console
}

または結合機能を使用します。

console.log(myObjectNames.join(";")); // will output: "John;James" in the console

答えを広げる

オブジェクトを持つことができます:

var myObject = [];

次に、名前をその配列にkey->valueペアでプッシュします。

var myNames = ['John', 'James', 'Zlatan'];

for(var x in myNames) {
    myObject.push({name: myNames[x]});
}

console.log(myObject);

コンソール出力に次の構造が表示されます。

[Object { name=

"John"

}, Object { name=

"James"

}, Object { name=

"Zlatan"

}]
于 2013-03-06T14:21:00.577 に答える
0

名前の配列だけが必要な場合は、myObject を配列として初期化し、それに名前を追加し、インデックスを指定するか、'push' を使用して追加します。

nameArray = []; //or new Array();
nameArray[0] = 'John';
nameArray.push('James');

上記の唯一のことは、単一の情報しか保存できないということです (つまり、名前は保存できますが、名前と年齢は保存できません)。複数の情報を保存したい場合は、最初に必要なプロパティを持つオブジェクトを作成し、次に、それらを配列に格納します。

personArray = [];
person1= new Object();
person1.name = 'John';
person1.age = 18;
personArray.push(object1);
person2 = {}; //Shorter version of new Object()
person2.name = 'James';
person2.age = 31;
personArray.push(person2);

その後、必要に応じてこれにアクセスできます。

personArray[1]['name']; //James
personArray[0].age; //18
于 2013-03-06T14:30:12.463 に答える