您正在将列表定义为object
。对象属性按照他们定义的顺序,但我们不能相信它的顺序。我认为Chrome有错误,它https://code.google.com/p/v8/issues/detail?id=164
以下first
方法给出了从列表对象第一个元素,此功能将作品大多数情况下,若对象为空则返回undefined
值。
var data = {
"_id":"123",
"list":{
"56":{"name":"Great ","amount":100,"place":"Town"},
"57":{"name":"Great 2","amount":200,"place":"City"}
},
"pop":[2,3]
};
function first(data){
for (var i in data){
if (data.hasOwnProperty(i)) break;
}
return data.hasOwnProperty(i) ? data[i] : undefined;
}
first(data.list).amount;
如果要保留列表的顺序,请将它们定义为Array
。例如
var data = {
"_id":"123",
"list":[
{"id" : "56" ,"name":"Great ","amount":100,"place":"Town"},
{"id" : "57" ,"name":"Great 2","amount":200,"place":"City"}
],
"pop":[2,3]
};
,并访问他们作为data.list[0]
来源
2013-04-30 11:11:01
rab
你的 “清单”是一个普通的对象,而不是一个数组,所以没有“第一个”值。 – Bergi 2013-04-30 10:43:31
向我们展示如何访问这100个对象,而不仅仅是一个提取的示例。 – Bergi 2013-04-30 10:45:01