javascript - 使用 lodash 透视数据

标签 javascript arrays json lodash

我需要将初始数组转换为最终数组,最好使用 lodash。

initArray = [
   {
      "date":"2017-08-15",
      "data":[
         {
            "color":"orange",
            "count":100
         },
         {
            "color":"green",
            "count":101
         }
      ]
   },
   {
      "date":"2017-08-14",
      "data":[
         {
            "color":"orange",
            "count":102
         },
         {
            "color":"green",
            "count":103
         }
      ]
   }
]

finalArray = [
   {
      "color":"orange",
      "data":[
         100,
         102
      ]
   },
   {
      "color":"green",
      "data":[
         101,
         103
      ]
   }
]

最佳答案

这种方式看起来 lodash 调用对我来说很有意义。

// var _ = require('lodash')

initArray = [
   {
      "date":"2017-08-15",
      "data":[
         {
            "color":"orange",
            "count":100
         },
         {
            "color":"green",
            "count":101
         }
      ]
   },
   {
      "date":"2017-08-14",
      "data":[
         {
            "color":"orange",
            "count":102
         },
         {
            "color":"green",
            "count":103
         }
      ]
   }
]

result = _(initArray)
    //.map('data')
    //.flatten()
    .flatMap('data') // instead of .map('data').flatten()
    .groupBy('color')
    .map((item, key) => ({
        color: key,
        count: _.map(item, 'count')
    }))
    .value()

console.log(result)
<script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script>

关于javascript - 使用 lodash 透视数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747507/

相关文章:

javascript - 我怎样才能得到JavaScript中的负责任的URL的长度

javascript - 在 JavaScript 中检索 R 对象属性

javascript - PHP/CSS 特定函数,其中页面位于页面顶部?

javascript - 如何在 emberjs View 上运行自定义 JavaScript?

javascript - 中键点击事件

c - 从 C 中的输入文件扫描直到到达某个字符 (#)?

C# 压缩三字节数组

sql - 查找 Postgres 数组中所有位置的所有元素的出现次数(计数)?

python - urllib.request.urlopen 的行为很奇怪。第二天不返回数据。为什么?

php - 选择2 添加带有确认框的新标签