【问题标题】:NodeJs: convert array of objects to a big objectNodeJs:将对象数组转换为大对象
【发布时间】:2017-05-06 12:51:37
【问题描述】:

我想写点到 InfluxDB。参考https://docs.influxdata.com/influxdb/v1.2/introduction/

点的字段是对象数组:

[ { water: 8.12 }, { temp: 22.05 }, { humid: 60.04 } ]

如何将这个数组转换为格式的对象

 { water: 8.12 ,  temp: 22.05 ,  humid: 60.04 } 

根据这个包https://github.com/vicanso/influxdb-nodejs 的要求?提前致谢。

【问题讨论】:

    标签: node.js influxdb


    【解决方案1】:

    这是Array.reduce 的典型任务。查看docs on MDN 了解更多信息。

    以下是它如何应用于您的问题:

    const data = [ { water: 8.12 }, { temp: 22.05 }, { humid: 60.04 } ];
    const obj = data.reduce((memo, value) => Object.assign(memo, value), {});
    

    简而言之:

    1. 以空对象{}为起点
    2. 它将数组(value 变量)中的每个对象分配到一个起点(memo 变量)
    3. 最后有一个由数组组成的对象

    【讨论】:

      【解决方案2】:

      在 ES6 中,您可以使用解构

      let arr = [ { water: 8.12 }, { temp: 22.05 }, { humid: 60.04 } ],
          [{water}, {temp}, {humid}] = arr,
          obj = {water, temp, humid};
          
      console.log(obj);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-03
        • 2020-06-15
        • 2016-03-11
        • 2019-07-11
        • 1970-01-01
        相关资源
        最近更新 更多