繁体   English   中英

访问对象内部的关联数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM