首页 > 解决方案 > 如何将对象数组转换为对象

问题描述

我有一个看起来像这样的数组:

[
  {
    value1: {
      something: "something"
    }
  },
  {
    value2: {
      something: "something"
    }
  }
]

我需要收到这样的东西:

{
    value1: {
        something: "something"
    },
    value2: {
        something: "something"
    }
}

提前致谢!

标签: javascriptarraysobjectjavascript-objects

解决方案


只需对原始数组进行缩减

const data = [
  {
    value1: {
      something: "something"
    }
  },
  {
    value2: {
      something: "something"
    }
  }
]

const result = data.reduce((acc, cur) => {
  const keys = Object.keys(cur);
  keys.forEach(key => {
    if(!acc[key]) {
      acc[key] = {...cur[key]}
    }
  });
  return acc;
}, {});

console.log(result);

/*

{
  value1: { something: 'something' },
  value2: { something: 'something' }
}

*/

推荐阅读