如何将具有包含值的对象的数组转换为仅包含键值的单个对象?

问题描述

因此,在为数据库绘制数据之后,我得到了类似的

[
{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)
        )

解决方法

这是一种简单的方法:

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: "boolean"}
];
let map = arr.reduce(function(obj,item){
  obj[item.name] = item.data_type; 
  return obj;
},{});
console.log(map);

,

这是减少

const data = [
{name: "id",data_type: "boolean"}
];

const arrayToObject = arr => arr.reduce((result,value) => {
  result[value.name] = value.data_type;
  return result;
},{});

console.log(arrayToObject(data));

,

另一种方法是使用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)