簡體   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