使用未命名数组
Make use of unnamed array
我正在调用 API 并成功取回这样的数组:
[ {
"absmag" : "4.85",
"speed" : "0",
"colorb_v" : "0.65",
"label" : "Sun",
"appmag" : "-26.72",
"distance_light_years" : "0",
"id" : "53794",
"hipnum" : "0",
"vy" : "0",
"updated_at" : "49:09.3",
"vx" : "0",
"vz" : "0",
"texnum" : "1",
"plxerr" : "0",
"created_at" : "49:09.3",
"plx" : "0",
"dcalc" : "0",
"z" : "0",
"luminosity" : "0.8913",
"y" : "0",
"x" : "0"
}
]
如何引用这些行中的每一行?我想做类似的事情:
var database = xml.responseText;
console.log(database.label);
xml.responseText
是一个数组,显示前需要先访问好索引 label
:
var database = xml.responseText;
console.log(database[0].label); // Add [0] because your example is an array of one element if you have more index refer to the edit
如果响应是字符串,您需要在使用前解析响应:
var database = JSON.parse(xml.responseText);
console.log(database[0].label);
编辑:
如果你的数组有多个索引,你可以使用foreach循环:
database.forEach(function(el) {
console.log(el.label);
})
您可以使用
引用 label
值
var database = xml.responseText[0];
console.log(database.label);
其实答案的关键在于你的问题。 . .该值是一个数组。 . .一个单元素数组,其唯一元素是一个对象。因此,您必须像访问数组一样访问数组元素(即使用索引),然后,由于该单独的数组元素是一个对象,您必须像访问对象一样访问对象的属性(即使用键)。
使用您的示例代码,即:console.log(database[0].label);
。 . . [0]
获取 database
数组的第一个(也是唯一一个)元素,.label
获取该对象的 "label" 属性 的值。
如果我理解正确,您期望生成的数组不仅包含原始问题所描述的一个对象,而且可以包含多个对象。
如果正确,则将正确答案扩展为@R3tep、@talemyn 和@trjast,在此数组顶部的循环也应该有帮助,恕我直言。
var database=xml.responseText;
var length=database.length;
for(var i=0;i<length;i+=1){
console.log(database[i].label);
}
有用吗?
我正在调用 API 并成功取回这样的数组:
[ {
"absmag" : "4.85",
"speed" : "0",
"colorb_v" : "0.65",
"label" : "Sun",
"appmag" : "-26.72",
"distance_light_years" : "0",
"id" : "53794",
"hipnum" : "0",
"vy" : "0",
"updated_at" : "49:09.3",
"vx" : "0",
"vz" : "0",
"texnum" : "1",
"plxerr" : "0",
"created_at" : "49:09.3",
"plx" : "0",
"dcalc" : "0",
"z" : "0",
"luminosity" : "0.8913",
"y" : "0",
"x" : "0"
}
]
如何引用这些行中的每一行?我想做类似的事情:
var database = xml.responseText;
console.log(database.label);
xml.responseText
是一个数组,显示前需要先访问好索引 label
:
var database = xml.responseText;
console.log(database[0].label); // Add [0] because your example is an array of one element if you have more index refer to the edit
如果响应是字符串,您需要在使用前解析响应:
var database = JSON.parse(xml.responseText);
console.log(database[0].label);
编辑:
如果你的数组有多个索引,你可以使用foreach循环:
database.forEach(function(el) {
console.log(el.label);
})
您可以使用
引用label
值
var database = xml.responseText[0];
console.log(database.label);
其实答案的关键在于你的问题。 . .该值是一个数组。 . .一个单元素数组,其唯一元素是一个对象。因此,您必须像访问数组一样访问数组元素(即使用索引),然后,由于该单独的数组元素是一个对象,您必须像访问对象一样访问对象的属性(即使用键)。
使用您的示例代码,即:console.log(database[0].label);
。 . . [0]
获取 database
数组的第一个(也是唯一一个)元素,.label
获取该对象的 "label" 属性 的值。
如果我理解正确,您期望生成的数组不仅包含原始问题所描述的一个对象,而且可以包含多个对象。
如果正确,则将正确答案扩展为@R3tep、@talemyn 和@trjast,在此数组顶部的循环也应该有帮助,恕我直言。
var database=xml.responseText;
var length=database.length;
for(var i=0;i<length;i+=1){
console.log(database[i].label);
}
有用吗?