使用Lodash操作嵌套属性 按intent统计所有日期的count总和
Lodash 嵌套属性按intent求和方案
你可以借助_.flatMap拍平嵌套的意图统计数组,再用_.reduce累加每个意图的总计数,最终按指定顺序输出结果数组,实现代码如下:
// 假设原始数据源存储在变量 data 中 const _ = require('lodash'); // 1. 拍平所有日期下的意图统计条目 const allIntentItems = _.flatMap(data.analytics, 'intents_count'); // 2. 累加每个intent对应的count总和 const intentTotal = _.reduce(allIntentItems, (acc, item) => { acc[item.intent] = (acc[item.intent] || 0) + item.count; return acc; }, {}); // 3. 按intent1、intent2、intent3的顺序生成结果数组 const result = [intentTotal.intent1, intentTotal.intent2, intentTotal.intent3];
运行后result的值就是你需要的[10, 2, 0]格式的结果。
如果你的intent列表是动态变化的,不需要硬编码取值,可以通过以下方式自动按intent名称排序生成结果:
const sortedIntents = _.sortBy(_.keys(intentTotal)); const dynamicResult = sortedIntents.map(intent => intentTotal[intent]);
内容的提问来源于stack exchange,提问作者Amir Choubani
相关产品推荐
相关产品推荐

