NodeJs:将对象数组转换为大对象
我想写点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 ? 提前致谢。
这是Array.reduce
的典型任务。 查看MDN上的文档以了解更多信息。
以下是它如何适用于您的问题:
const data = [ { water: 8.12 }, { temp: 22.05 }, { humid: 60.04 } ]; const obj = data.reduce((memo, value) => Object.assign(memo, value), {});
简而言之:
- 它以空对象
{}
为起点 - 它从数组(
value
variables)分配每个对象到一个起点(memo
variables) - 最后还有一个由数组组成的对象
有了ES6,你可以使用解构 :
let arr = [ { water: 8.12 }, { temp: 22.05 }, { humid: 60.04 } ], [{water}, {temp}, {humid}] = arr, obj = {water, temp, humid}; console.log(obj);