オブジェクトにデータを保存しています(後でjsonに変換したいため)。
var myObject = new Object();
myObject.name = "John";
myObject.name = "James";
ループして各名前を出力できるように、配列のように扱いたいので、これがどのように機能するかはよくわかりません
myObject[i]['name'];
どこが間違っていますか?
オブジェクトにデータを保存しています(後でjsonに変換したいため)。
var myObject = new Object();
myObject.name = "John";
myObject.name = "James";
ループして各名前を出力できるように、配列のように扱いたいので、これがどのように機能するかはよくわかりません
myObject[i]['name'];
どこが間違っていますか?
あなたがしたようにそれをすることはできません。このようにしてみてください:
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"
}]
名前の配列だけが必要な場合は、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