我正在使用fetch来检索一个json文件。json文件返回一个对象列表。每个对象也有一个对象。我正在尝试对外部对象进行控制台日志。以下是该文件的内容。从下面的数据中,我尝试记录这个列表'CNDNET','Acropolis','Other‘。如果我使用Object.keys(data),我会得到一个整数0,1,2的列表。谢谢。
[
{
"CNDNET":{
"application":[
{
"Elastic":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
},
{
"Kibana":[
"Website Access Issue",
"Access Issue",
"Site Down"
]
},
{
"Logstash":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
},
{
"Kafka":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
},
{
"Phoenix":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
},
{
"Outlook":[
"Access Issue"
]
},
{
"Domain Account":[
"Access Issue"
]
},
{
"Token":[
"Access Issue"
]
},
{
"Software":[
"Authenticate",
"Firefox",
"Swift"
]
},
{
"Hardware":[
"Monitor",
"Printer"
]
}
]
}
},
{
"Acropolis":{
"application":[
{
"ACT":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
},
{
"ARTEMIS":[
"Missing Data",
"No Data/Data Feed Down",
"Content/Feature Request",
"Access Issue"
]
}
]
}
},
{
"Other":{
"application":[
{
"CMIS":[
"Website Access Issue",
"Other",
"Access Issue"
]
},
{
"SharePoint":[
"Access Issue",
"Other"
]
},
{
"GTMS":[
"Access Issue",
"Other"
]
},
{
"Other":[
"Other"
]
}
]
}
}
]发布于 2021-01-18 20:26:44
实际上,顶级data数组中包含三个对象。您可以使用flatMap()遍历这些元素,返回每个元素的Object.keys()。
const data = [{ "CNDNET": { "application": [{ "Elastic": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }, { "Kibana": ["Website Access Issue", "Access Issue", "Site Down"] }, { "Logstash": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }, { "Kafka": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }, { "Phoenix": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }, { "Outlook": ["Access Issue"] }, { "Domain Account": ["Access Issue"] }, { "Token": ["Access Issue"] }, { "Software": ["Authenticate", "Firefox", "Swift"] }, { "Hardware": ["Monitor", "Printer"] }] } }, { "Acropolis": { "application": [{ "ACT": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }, { "ARTEMIS": ["Missing Data", "No Data/Data Feed Down", "Content/Feature Request", "Access Issue"] }] } }, { "Other": { "application": [{ "CMIS": ["Website Access Issue", "Other", "Access Issue"] }, { "SharePoint": ["Access Issue", "Other"] }, { "GTMS": ["Access Issue", "Other"] }, { "Other": ["Other"] }] } }]
const dataKeys = data.flatMap(o => Object.keys(o));
console.log(dataKeys);
正如我在评论中提到的,直接在data数组上调用Object.keys()只返回数组的整数索引。(0,1,2)
发布于 2021-01-18 20:37:49
您可以遍历数组,返回键并将其存储在变量中。稍后使用concat()或flat()方法将2D数组转换为1D数组,示例如下所示。
let result = arr.map((item) => {
return Object.keys(item)
})
console.log(result.flat())
console.log([].concat(...result))https://stackoverflow.com/questions/65774217
复制相似问题