【问题标题】:JavaScript: Transform array of objects to an objectJavaScript:将对象数组转换为对象
【发布时间】:2021-09-20 21:02:27
【问题描述】:

我正在制作一个使用sequelize 的应用程序,返回的JSON 值为:

[
  { key: 'PREFIX', value: 'm.' },
  { key: 'OWNER_ID', value: '14901414891498' },
  { key: 'GUILD_ID', value: '525219058950109' }
]

但我想知道是否可以将这个 json 对象重新组织成这样的:

{ prefix: 'm.', owner_id: '330406276972412928', guild_id: '525219058950109'}

我搜索了一些使用 Javascript 进行 JSON 对象操作的方法,但没有一个适合我的需要。

【问题讨论】:

    标签: javascript node.js json


    【解决方案1】:

    使用Array#reduce

    const data = [ { key: 'PREFIX', value: 'm.' }, { key: 'OWNER_ID', value: '14901414891498' }, { key: 'GUILD_ID', value: '525219058950109' } ];
    
    const obj = data.reduce((acc, {key, value}) => ({
      ...acc, [key.toLowerCase()]: value
    }), {});
    
    console.log(obj);

    【讨论】:

      【解决方案2】:

      您可以使用Object.fromEntries 并将对象转换为[key, value] 元组。

      const data = [
        { key: 'PREFIX', value: 'm.' },
        { key: 'OWNER_ID', value: '14901414891498' },
        { key: 'GUILD_ID', value: '525219058950109' }
      ]
      
      const newData = Object.fromEntries(data.map(({ key, value }) => 
        [key.toLowerCase(), value]))
      
      console.log(newData)

      【讨论】:

      • 谢谢!!成功了
      猜你喜欢
      • 2017-01-14
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2021-01-15
      • 2021-06-19
      • 2017-11-13
      相关资源
      最近更新 更多