Ami*_*ani 0 javascript arrays grouping typescript lodash
我有对象数组
{
"agent_name": "AgentName",
"analytics": [
{
"date": "Tue, 1 Aug 2021 00:00:00 GMT",
"intents_count":[
{
"count": 5,
"intent": "intent1"
},
{
"count": 1,
"intent": "intent2"
},
{
"count": 0,
"intent": "intent3"
},
]
},
{
"date": "Tue, 2 Aug 2021 00:00:00 GMT",
"intents_count":[
{
"count": 5,
"intent": "intent1"
},
{
"count": 1,
"intent": "intent2"
},
{
"count": 0,
"intent": "intent3"
},
]
},
... the same for the next days of month
]
}
Run Code Online (Sandbox Code Playgroud)
我需要获取按日期分组的每个意图的计数总和。
结果应该是这样的:
[10, 2, 0]
Run Code Online (Sandbox Code Playgroud)
其中 10 对应于所有天中意图“intent1”的计数字段的总和。
小智 5
您需要先平展并选择所需的数组“分析”。然后使用 groupBy 和 sum 得到最终结果。
let data = {
"agent_name": "AgentName",
"analytics": [
{
"date": "Tue, 1 Aug 2021 00:00:00 GMT",
"intents_count":[
{
"count": 5,
"intent": "intent1"
},
{
"count": 1,
"intent": "intent2"
},
{
"count": 0,
"intent": "intent3"
},
]
},
{
"date": "Tue, 2 Aug 2021 00:00:00 GMT",
"intents_count":[
{
"count": 5,
"intent": "intent1"
},
{
"count": 1,
"intent": "intent2"
},
{
"count": 0,
"intent": "intent3"
},
]
},
]
}
let flatResult = _.flatMap(data.analytics, 'intents_count');
let result = _(flatResult).groupBy('intent').map(x => _.sumBy(x, 'count'));
console.log(result)Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |