将Flat JSON数组转换为Nodejs中的JSON对象

rea*_*des 1 javascript json node.js

我有一个平面的json数组,可以存储如下数据:


[
 {
  "prop1": "prop1Data1"
 },
 {
  "prop2": "prop2Data1"
 },
 {
  "prop3.name": "Tom"
 }
]
Run Code Online (Sandbox Code Playgroud)

如何将此数据转换为节点js中的简单json对象,如下所示:


{ "prop1": "prop1Data1", "prop2": "prop2Data1", "prop3.name": "Tom" }
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 6

您可以使用Object.assign并使用数组的扩展语法....

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }],
    object = Object.assign({}, ...array);

console.log(object);
Run Code Online (Sandbox Code Playgroud)

ES5使用Array#reduce和迭代键.

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }],
    object = array.reduce(function (r, o) {
        Object.keys(o).forEach(function (k) {
            r[k] = o[k];
        });
        return r;
    }, {});

console.log(object);
Run Code Online (Sandbox Code Playgroud)