在数组中存储和检索数据
Storing and Retrieving Data in Arrays
我需要你的帮助,
首先,我在设置我的阵列时遇到了错误,如下所示。这样做的正确方法是什么,然后像下面这样检索其数据?
var office_a = {
name: [{
name: "Alpha Branch", mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name", mailstop: "DIV1",
division2: "Division 2 Office Name", mailstop: "DIV2",
division3: "Division 3 Office Name", mailstop: "DIV3"
}]
};
function test() {
alert(office_a[name].name); // -> "Alpha Branch"
alert(office_a[name].mailstop); // -> "B1"
alert(office_a[divisions][division1.name]); // -> "Division 1 Office Name"
alert(office_a[divisions][division1.mailstop]); // -> "DIV1"
}
test();
试试这些(基本上你需要考虑关联数组中的数组索引)。检查这个 fiddle
var office_a = {
name: [{
name: "Alpha Branch", mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name", mailstop: "DIV1",
division2: "Division 2 Office Name", mailstop: "DIV2",
division3: "Division 3 Office Name", mailstop: "DIV3"
}]
};
function test() {
console.log(office_a.name[0].name);
console.log(office_a.name[0].mailstop);
console.log(office_a.divisions[0].division1);
console.log(office_a.divisions[0].mailstop);
}
test();
我想我可能会扩展这个主题。如果您执行以下操作:
console.log(office_a);
您将能够在您的网络检查器上看到以下结果(我使用的是 Chrome)。我只会在这里输入相关信息来达到你想要达到的目的。
Object {name: Array[1], divisions: Array[1]}
divisions: Array[1]
0: Object
division1: "Division 1 Office Name"
division2: "Division 2 Office Name"
division3: "Division 3 Office Name"
mailstop: "DIV3"
name: Array[1]
0: Object
mailstop: "AB"
name: "Alpha Branch"
通过查看此内容,您可以非常清楚地了解浏览器如何解释您的对象。首先导致使用 JavaScript Literal Notation 来访问其内容,例如通过 objectName.propertyName
:
console.log(office_a.name);
console.log(office_a.divisions);
这将生成如上所示的数组:
divisions
0: Object
division1: "Division 1 Office Name"
division2: "Division 2 Office Name"
division3: "Division 3 Office Name"
mailstop: "DIV3"
name
0: Object
mailstop: "AB"
name: "Alpha Branch"
从这里您可以访问每个单独对象的内容,在您的例子中是一个包含对象的数组。
console.log(office_a.name[0]);
console.log(office_a.divisions[0]);
正如我已经向您展示的那样,访问对象的特定内容就像在该对象中使用所需的 属性 一样简单。在您的情况下,您希望查看所有内容,因此请执行以下操作:
console.log(office_a.name[0].name); // Alpha Branch
console.log(office_a.name[0].mailstop); // B1
console.log(office_a.divisions[0].division1); // Division 1 Office Name
console.log(office_a.divisions[0].mailstop); // DIV1
TL;DR
这导致以下结果(注意我修改了 test()
函数):
var office_a = {
name: [{
name: "Alpha Branch",
mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name",
mailstop: "DIV1",
division2: "Division 2 Office Name",
mailstop: "DIV2",
division3: "Division 3 Office Name",
mailstop: "DIV3"
}]
};
function test(myObject) {
alert(myObject.name[0].name); // Alpha Branch
alert(myObject.name[0].mailstop); // B1
alert(myObject.divisions[0].division1); // Division 1 Office Name
alert(myObject.divisions[0].mailstop); // DIV1
}
test(office_a);
我需要你的帮助,
首先,我在设置我的阵列时遇到了错误,如下所示。这样做的正确方法是什么,然后像下面这样检索其数据?
var office_a = {
name: [{
name: "Alpha Branch", mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name", mailstop: "DIV1",
division2: "Division 2 Office Name", mailstop: "DIV2",
division3: "Division 3 Office Name", mailstop: "DIV3"
}]
};
function test() {
alert(office_a[name].name); // -> "Alpha Branch"
alert(office_a[name].mailstop); // -> "B1"
alert(office_a[divisions][division1.name]); // -> "Division 1 Office Name"
alert(office_a[divisions][division1.mailstop]); // -> "DIV1"
}
test();
试试这些(基本上你需要考虑关联数组中的数组索引)。检查这个 fiddle
var office_a = {
name: [{
name: "Alpha Branch", mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name", mailstop: "DIV1",
division2: "Division 2 Office Name", mailstop: "DIV2",
division3: "Division 3 Office Name", mailstop: "DIV3"
}]
};
function test() {
console.log(office_a.name[0].name);
console.log(office_a.name[0].mailstop);
console.log(office_a.divisions[0].division1);
console.log(office_a.divisions[0].mailstop);
}
test();
我想我可能会扩展这个主题。如果您执行以下操作:
console.log(office_a);
您将能够在您的网络检查器上看到以下结果(我使用的是 Chrome)。我只会在这里输入相关信息来达到你想要达到的目的。
Object {name: Array[1], divisions: Array[1]}
divisions: Array[1]
0: Object
division1: "Division 1 Office Name"
division2: "Division 2 Office Name"
division3: "Division 3 Office Name"
mailstop: "DIV3"
name: Array[1]
0: Object
mailstop: "AB"
name: "Alpha Branch"
通过查看此内容,您可以非常清楚地了解浏览器如何解释您的对象。首先导致使用 JavaScript Literal Notation 来访问其内容,例如通过 objectName.propertyName
:
console.log(office_a.name);
console.log(office_a.divisions);
这将生成如上所示的数组:
divisions
0: Object
division1: "Division 1 Office Name"
division2: "Division 2 Office Name"
division3: "Division 3 Office Name"
mailstop: "DIV3"
name
0: Object
mailstop: "AB"
name: "Alpha Branch"
从这里您可以访问每个单独对象的内容,在您的例子中是一个包含对象的数组。
console.log(office_a.name[0]);
console.log(office_a.divisions[0]);
正如我已经向您展示的那样,访问对象的特定内容就像在该对象中使用所需的 属性 一样简单。在您的情况下,您希望查看所有内容,因此请执行以下操作:
console.log(office_a.name[0].name); // Alpha Branch
console.log(office_a.name[0].mailstop); // B1
console.log(office_a.divisions[0].division1); // Division 1 Office Name
console.log(office_a.divisions[0].mailstop); // DIV1
TL;DR
这导致以下结果(注意我修改了 test()
函数):
var office_a = {
name: [{
name: "Alpha Branch",
mailstop: "AB"
}],
divisions: [{
division1: "Division 1 Office Name",
mailstop: "DIV1",
division2: "Division 2 Office Name",
mailstop: "DIV2",
division3: "Division 3 Office Name",
mailstop: "DIV3"
}]
};
function test(myObject) {
alert(myObject.name[0].name); // Alpha Branch
alert(myObject.name[0].mailstop); // B1
alert(myObject.divisions[0].division1); // Division 1 Office Name
alert(myObject.divisions[0].mailstop); // DIV1
}
test(office_a);