[英]Accessing associative array inside an object
我到处都在寻找它,但是似乎没有人在对象中使用关联数组。 这是我的对象:
var player = {
Level: 1,
Stats: [{Defense : 5}, {Attack: 1}, {Luck: 3}]
};
我需要访问防御,攻击和运气的值,但是如何?
我已经尝试过了,但是没有用:
player.Stats.Defense
player.Stats.Attack
player.Stats.Luck
有任何想法吗? 谢谢!
PS我使用jQuery是否有所不同?
您已经说过您可以控制结构。 如果是这样,请将其更改为:
var player = {
Level: 1,
Stats: {Defense : 5, Attack: 1, Luck: 3}
};
注意, Stats
现在是一个对象,而不是数组。 然后,您以尝试的方式访问该信息, player.Stats.Defense
,依此类推。 没有必要使Stats
成为一组不同的对象,这只会使您的生活变得困难。
您使用了“关联数组”一词,这使我认为您具有PHP背景。 为了避免与数组混淆,该术语在JavaScript世界中并不常用。 “对象”,“地图”或“字典”是通常使用的术语,大概按该顺序使用,均指对象( {}
)。 十分之九,如果您将关联数组用于PHP中的某个对象,那么您将在JavaScript中为其使用一个对象(除了将对象用于与您在PHP中使用对象相同的事物之外)。
PS我使用jQuery是否有所不同?
不,这是语言级别的,而不是库级别的,但这是一个完全合理的问题。
(将此作为CW答案,因为基本上这是对该问题的所有评论所表达的意思。)
数据: [{Defense : 5}, {Attack: 1}, {Luck: 3}]
是对象数组,您需要执行以下操作:
player.Stats[0].Defense
player.Stats[1].Attack
player.Stats[2].Luck
这里player.Stats是一个对象数组。 因此,您必须使用索引来访问那些对象。
var player = {
Level: 1,
Stats: [{Defense : 5}, {Attack: 1}, {Luck: 3}]
};
使用这些:
player.Stats[0].Defense
player.Stats[1].Attack
player.Stats[2].Luck
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.