我正在使用下划线将一些道具提取到一个单独的对象中,但是结构不是我想要的:
let element = {
foo: 0,
bar: 1,
baz: _.map(
_.filter(element.properties, (prop) =>
_.contains(validationProps, prop.name)), (rule) =>
({ [rule.name]: rule.value }) )
}
..返回baz
的对象数组:
[ {"required":true} , {"maxLength":242} ]
..但是我需要的是:
{ "required":true, "maxLength":242 }
答案 0 :(得分:4)
或使用JavaScript的Array.prototype.reduce()
reduce()方法在数组的每个成员上执行reducer函数(由您提供),从而产生单个输出值。
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);