我在获取内部对象级别的键值时遇到问题。
这是示例对象
{
"dataset":{
"Categories":[
{
"Desserts":[
"Sweets",
"Ice Creams",
"Pastry",
"Moose",
"Jelly",
"Donut",
"Custard",
"Puddings",
"Cookies",
"Pies"
]
},
{
"Juices and Beverages":[
"Cold",
"Hot",
"Fresh",
"Mocktail",
"Sodas"
]
},
{
"Indian Breads":[
"Plain",
"Stuffed"
]
},
{
"Salads":[
"Green",
"Vegetable",
"Fruit"
]
},
{
"Soups":[
"Clear",
"Thick"
]
}
]
}
}
我尝试通过外层的对象进行交互。
for(var k in dataset.Categories)
categories.push(k);
但我得到的结果为0,1,2,3,4。
如何在内部获得关键值?喜欢" Desserts"," Juices and Beverages",....
答案 0 :(得分:1)
Categories
是一个数组,因此如果你使用for..in
,你将得到的值是数组索引。
要获得所需的值,您可以使用:
var categoryNames = dataset.Categories.map(function (item) {
return Object.keys(item)[0];
});
答案 1 :(得分:0)
您正在插入索引而不是值。代码未经测试但应该有效。
for(var k in dataset.Categories)
categories.push(dataset.Categories[k]);