【问题标题】:Convert array into custom object with array items as key values将数组转换为以数组项为键值的自定义对象
【发布时间】:2022-11-25 03:59:41
【问题描述】:

我对 JS 有点陌生,所以我有点被这个看似简单的问题困住了。 我必须从以下位置转换有效负载:

const payload = {left: ['name', 'phone'], right: ['address']} 

至:

const payload = 
  columns: {
      name: {
        pinned: 'left',
      },
      phone: {
        pinned: 'left',
      },
      address: {
        pinned: 'right'
     }
    },

到目前为止,我想出了这样的事情:

const left = pinnedColumns.left.map((col) => ({ [col]: { pinned: 'left' } }));

但是它创建了一个以索引为键的数组。

【问题讨论】:

    标签: javascript arrays object key-value custom-object


    【解决方案1】:

    这可以通过 reduce 函数解决:

    const payload = {left: ['name', 'phone'], right: ['address']} 
    
    const result = Object.entries(payload).reduce((acc, [key, values]) => {
      for (const value of values) {
        acc.columns[value] = {pinned: key}
      }
      return acc
    }, {columns: {}})
    
    console.log(result)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多