【问题标题】:How to convert an array with objects that contain value,values to a single object with only key,values?如何将包含值、值的对象的数组转换为只有键、值的单个对象?
【发布时间】:2020-12-23 05:28:05
【问题描述】:

所以在为数据库绘制数据之后,我最终得到了类似的东西

[
{name: "id", data_type: "integer"}
{name: "name", data_type: "char"}
{name: "active", data_type: "boolean"}
]

但我想要的是:

{id: "integer" , name: "char" , active: "boolean" }

我尝试了很多东西但无法弄清楚,任何帮助将不胜感激

这是我绝望的尝试:

Object.entries(jsonData).map((type) => {
        return { ...objectList, [type[1].name]: type[1].data_type };
      }).reduce((objectList, object) => (
          ...objectList,
          object)
        )

【问题讨论】:

    标签: javascript arrays ecmascript-6 reduce


    【解决方案1】:

    这是一个简单的方法:

    let arr = [
    {name: "id", data_type: "integer"},
    {name: "name", data_type: "char"},
    {name: "active", data_type: "boolean"}
    ];
    let map = {};
    arr.forEach(e => map[e.name]=e.data_type);
    console.log(map);

    如果你想使用.reduce,试试这个:

    let arr = [
    {name: "id", data_type: "integer"},
    {name: "name", data_type: "char"},
    {name: "active", data_type: "boolean"}
    ];
    let map = arr.reduce(function(obj,item){
      obj[item.name] = item.data_type; 
      return obj;
    }, {});
    console.log(map);

    【讨论】:

    • 谢谢! .reduce 为我返回了一个错误,但 .forEach 效果惊人!
    【解决方案2】:

    这是一个减少

    const data = [
    {name: "id", data_type: "integer"},
    {name: "name", data_type: "char"},
    {name: "active", data_type: "boolean"}
    ];
    
    const arrayToObject = arr => arr.reduce((result, value) => {
      result[value.name] = value.data_type;
      return result;
    }, {});
    
    console.log(arrayToObject(data));

    【讨论】:

      【解决方案3】:

      另一种方法是使用Array.reduce()

      const array = [
        { name: 'id', data_type: 'integer' },
        { name: 'name', data_type: 'char' },
        { name: 'active', data_type: 'boolean' },
      ];
      
      const newObject = array.reduce((finalObj, obj) => {
        finalObj[obj.name] = obj.data_type;
        return finalObj;
      }, {})
      
      console.log(newObject)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 2017-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-17
        相关资源
        最近更新 更多