推送到对象而不是数组

Push to object instead of array

我正在使用下划线将一些道具提取到一个单独的对象中,但结构不是我想要的:

let element = {
    foo: 0,
    bar: 1,
    baz: _.map(
            _.filter(element.properties, (prop) => 
                _.contains(validationProps, prop.name)), (rule) => 
                    ({ [rule.name]: rule.value }) )
}

.. returns baz:

的对象数组
[ {"required":true} , {"maxLength":242} ]

.. 然而我需要的是:

{ "required":true, "maxLength":242 }

或使用JavaScript的Array.prototype.reduce()

The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.

let data = [{
    "name": "label",
    "value": "Short 2"
  },
  {
    "name": "required",
    "value": true
  },
  {
    "name": "maxLength",
    "value": 242
  }
];

let reformatted = data.reduce((pv, cv) => {
  pv[cv.name] = cv.value;
  return pv;
}, {});

console.log(reformatted);