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 初始化为一个数组并将名称添加到其中,然后通过指定索引或使用“推”来添加。

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 回答