javascript - 推送到对象而不是数组

标签 javascript underscore.js

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

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 }

最佳答案

或者使用 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);

关于javascript - 推送到对象而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331716/

相关文章:

javascript - 如何提取/哪里具有数组属性的 javascript 列表

javascript - 使用javascript将数组对象转换为对象数组

javascript - 确定 super() 是否从继承类中调用

javascript - VUE.JS 将数据传递给 D3 - 做对了吗?

javascript - Webpack - 找不到依赖项

javascript - Underscore.js findWhere 嵌套对象

javascript - 使用 Underscore.js 从按某些属性排名的数组中检索前 n 个元素

javascript - 基于带 lodash 下划线的键拆分 jsonarray

javascript - 当我在本地主机中删除谷歌分析时,如何忽略整个站点的 ga() 事件跟踪代码?

javascript - 使用 JQuery 将此特定数组附加到 html select