我的数据:
[
{
"configData":[
{
"repoSettings":[
{
"BaseURL":"45df16eb-55f9-48a9-9df8-428984524d7b",
"CurrentBranch":"Publish_1522323990",
"CurrentHeadSHA":"85c599a6ab3ecf8bfb469479da",
"RepositoryId":1528,
"RepositoryName":"45df16eb-55f94524d7b"
}
]
},
{
"pageSettings":[
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"index.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
}
]
},
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"about.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
},
{
"Sidebar":"default"
}
]
},
,
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"about.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
},
{
"Sidebar":"default"
},
{
"MenuBar":"default"
}
]
}
]
}
]
}
]在这个数据中,我想遍历pageSettings的所有对象和内部,所有的部分数组,我想遍历所有对象并找到匹配条件的所有索引。比方说,我有“头”键和值“默认”对。现在,我想在这个JSON中找到所有pageSettings对象和所有partials对象的JSON。如果找到键值对,则为该pageSettings索引返回true。通过洛达什有可能吗?或者你能提供snipp?
发布于 2018-04-03 09:59:18
看看这个。您可以在数组上使用forEach(),并尝试从部分查找键和值。
let data = [
{
"configData":[
{
"repoSettings":[
{
"BaseURL":"45df16eb-55f9-48a9-9df8-428984524d7b",
"CurrentBranch":"Publish_1522323990",
"CurrentHeadSHA":"85c599a6ab3ecf8bfb469479da",
"RepositoryId":1528,
"RepositoryName":"45df16eb-55f94524d7b"
}
]
},
{
"pageSettings":[
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"index.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
}
]
},
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"about.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
},
{
"Sidebar":"default"
}
]
},
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"about.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Header":"default"
},
{
"Footer":"default"
},
{
"Sidebar":"default"
},
{
"MenuBar":"default"
}
]
},
{
"PageCss":[
],
"PageExternalCss":[
],
"PageExternalJs":[
],
"PageLayout":"default",
"PageMetaInfo":[
],
"PageMetacharset":"UTF-8",
"PageName":"about.html",
"PageSEODescription":"",
"PageSEOKeywords":"",
"PageSEOTitle":"",
"PageScripts":[
],
"PageStyles":[
],
"partials":[
{
"Sidebar":"default"
},
{
"MenuBar":"default"
}
]
}
]
}
]
}
]
function find(key, value) {
let matchingIndex = [];
data[0].configData[1].pageSettings.forEach((i, settingIndex) => {
i.partials.forEach(j => {
let matching = Object.keys(j).filter(k => k === key && j[k] === value);
if(matching && matching.length) {
matchingIndex.push(settingIndex);
};
})
})
console.log('Given values ('+key+','+value+') are found in setting index: '+ matchingIndex);
}
find('Header','default');
find('Sidebar','default')
https://stackoverflow.com/questions/49626800
复制相似问题