[英]Iterating over a list in JSON using TypeScript
我在TypeScript中遍歷json時遇到問題。 我在使用一個特定的json字段tribe
遇到麻煩。 由於某種原因,我無法遍歷那個。 在調試器中,我期望Orc
出現,但我得到0
。 為什么是這樣? 如何正確遍歷我的tribe
數據?
// Maps a profession or tribe group name to a bucket of characters
let professionMap = new Map<string, Character[]>()
let tribeMap = new Map<string, Character[]>()
let herolistJson = require('./data/HeroList.json')
for (let hero of herolistJson){
// Certain characters can have more than one tribe
// !!!!! The trouble begins here, tribe is 0???
for (let tribe in hero.tribe){
let tribeBucket = tribeMap.get(tribe) as Character[]
// If the hero does not already exist in this tribe bucket, add it
if(tribeBucket.find(x => x.name == hero.name) === undefined )
{
tribeBucket.push(new Character(hero.name, hero.tribe, hero.profession, hero.cost))
}
}
}
我的json文件看起來像這樣
[
{
"name": "Axe",
"tribe": ["Orc"],
"profession": "Warrior",
"cost": 1
},
{
"name": "Enchantress",
"tribe": ["Beast"],
"profession": "Druid",
"cost": 1
}
]
in
某對象的鑰匙 ,而不是值進行迭代。 數組的鍵是其索引。 如果你使用of
不是,您將使用新的迭代器協議和數組的迭代器提供的,而不是鍵的值。
for (let tribe of /* in */ hero.tribe) {
請注意,此功能不適用於IE 11,但適用於大多數其他瀏覽器以及與ES2015兼容的許多JS環境。 kangax / compat有部分列表。
在第二個循環中將“ in”更改為“ of”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.