{
"brands": [
{
"name": "CarBrand1",
"models": [
{
"name": "CarModel1"
},
{
"name": "CarModel2"
},
{
"name": "CarModel3"
}
]
},
{
"name": "CarBrand2",
"models": [
{
"name": "CarModel1"
},
{
"name": "CarModel2"
},
{
"name": "CarModel3"
}
]
}
]
}
我有一个像这样的JSON,我想进入
CarBrand1
以获得CarBrand1
的所有汽车模型。我可以json.brands[0]
获得
CarBrand1
汽车模型或json.brands[1]
获得
CarBrand2
汽车模型。但是,如果我想通过品牌名称值(“名称”:“ CarBrand2”)获得CarBrand2
汽车型号怎么办?就像是
json.brands['CarBrand1']
(当然,这不是正确的方法)
最佳答案
如果没有迭代和比较,就没有简单的方法可以通过属性名称访问对象。我猜最简单的方法是使用find
函数:
json.brands.find((c) => c.name == "CarBrand1")
请注意,如果您经常需要按名称访问品牌,建议您创建某种查找字典。例如:
lookup = [];
js.brands.forEach((c, i) => lookup[c.name] = c)
lookup["CarBrand1"] // --> {name: "CarBrand1", models: Array(4)}