【发布时间】:2016-05-10 05:41:05
【问题描述】:
如何访问下面对象中name 的值?此外,由于唯一键(即friend1 和friend2)包含其他键/值对,因此该对象是否具有特殊名称?
var friends = {
"friend1":{
"name":"ana",
"position":1,
"spouse":"billy"
},
"friend2":{
'name':'keri',
'position':2,
'spouse':'david'
}
};
请注意,这是我正在进行的项目的简化版本。我意识到有一种更好的方法来保存朋友列表的数据——要记住的一点是,保存其他键/值对的键是唯一的。
我已经尝试过了,但它显然不起作用(即“未定义”):
for( i = 0; i < Object.keys(friends).length; i++ ) {
var theFriend = [i].name;
alert(theFriend);
}
这是fiddle。
【问题讨论】:
-
大多数时候,如果你看到这样的结构,你就做错了......
-
@Alnitak 感谢您解决这个问题。我自己并没有看到这种格式,但我在jsfiddle.net/mitchmalone/Wf6qy/1 遇到了一个小提琴,它根据中心位置计算距离,我使用他的代码构建了一个在谷歌地图上放置多个标记的项目。可能还有另一种方法,但再次感谢您的评论。
-
@Alnitak,我注意到了你的编辑。谢谢你。那么变量
friends只是一个对象,和JSON无关?我见过其他类似的代码,人们称之为 JSON,但我想肯定有一些区别。 -
JSON 是一种对象序列化格式,即你得到一个看起来有点像 JS 对象字面量的字符串(并且确实是可解析的)。至于你给出的另一个例子,那 is 是一个合适的用途,因为键是真正唯一的(而你的似乎没有语义值),并且没有有点像它的
position元素应该只是一个数组偏移量。
标签: javascript object