Javascript 如何使用groupby从JSON获取数据,使用lodash进行过滤
我只需要从json文件中获取一个数据,我使用的是lodash.groupBy和.filter,但它只会返回一个错误的结果Javascript 如何使用groupby从JSON获取数据,使用lodash进行过滤,javascript,json,Javascript,Json,我只需要从json文件中获取一个数据,我使用的是lodash.groupBy和.filter,但它只会返回一个错误的结果 let insightAverageThroughput = [{ "insight": "wahahahah", "reportMonth": "June 2018", "project": "Cambridge Core Dashboard" }, { "insight": "aaaaaaa", "reportMonth":
let insightAverageThroughput = [{
"insight": "wahahahah",
"reportMonth": "June 2018",
"project": "Cambridge Core Dashboard"
},
{
"insight": "aaaaaaa",
"reportMonth": "February 2018",
"project": "coreadmin"
}
];
function filterInsights(data, month, project) {
let grouped = _.groupBy(data, z => z.project == project)
console.log(month)
console.log(project)
console.log(grouped)
let filtered = _.filter(grouped[project], x => x.reportMonth == month)
console.log(filter)
return filtered.length > 0 && filtered[0].insight;
}
您应该
groupBy
仅按项目而不是按谓词:
let grouped = _.groupBy(data, z => z.project)
您应该
groupBy
仅按项目而不是按谓词:
let grouped = _.groupBy(data, z => z.project)
使用
groupBy
,所有数据将按单个项目分组,使用filter
我们将返回所有项目,这些项目满足条件reportMonth==month
另外,请注意我是如何使用groupBy
的。您应该传递一个值,而不是条件:
_.groupBy(data, 'project')
以下是代码:
让InsightAverage吞吐量=[{
“洞察”:“娃哈哈”,
“报告月”:“2018年6月”,
“项目”:“剑桥核心仪表板”
},
{
“洞察”:“AAAAA”,
“报告月”:“2018年2月”,
“项目”:“coreadmin”
}
];
功能过滤器(数据、月份、项目){
const grouped=\ uu.groupBy(数据“项目”)
const filteredItems=grouped[project].filter(({reportMonth})=>reportMonth==month)
返回{[project]:filteredItems}
}
log(filteringsights(insightAverageThroughput,'2018年2月,'coreadmin'))
使用groupBy
,所有数据将按单个项目分组,并使用过滤器
返回所有项目,这些项目满足条件reportMonth===month
另外,请注意我是如何使用groupBy
的。您应该传递一个值,而不是条件:
_.groupBy(data, 'project')
以下是代码:
让InsightAverage吞吐量=[{
“洞察”:“娃哈哈”,
“报告月”:“2018年6月”,
“项目”:“剑桥核心仪表板”
},
{
“洞察”:“AAAAA”,
“报告月”:“2018年2月”,
“项目”:“coreadmin”
}
];
功能过滤器(数据、月份、项目){
const grouped=\ uu.groupBy(数据“项目”)
const filteredItems=grouped[project].filter(({reportMonth})=>reportMonth==month)
返回{[project]:filteredItems}
}
log(filteringsights(insightAverageThroughput,'2018年2月,'coreadmin'))