【问题标题】:How to make object which store unique key have multiple different values如何使存储唯一键的对象具有多个不同的值
【发布时间】:2023-02-03 23:23:10
【问题描述】:
    var data = [{type: 'physical', value: 'verified'}, 
                {type: 'reference', value: 'owner'},
                {type: 'physical', value: 'pending'},
                {type: 'document', value: 'pending'}
               ]

如何以应具有存储多个值的唯一键的方式返回对象

预期结果 =

  var data  = {
      physical: ['verified', 'pending'],
      reference: ['owner'],
      document: ['pending']
  }

【问题讨论】:

  • 请根据您提供的数据分享预期结果。
  • 你能告诉我们你尝试了什么吗?即使它根本不起作用。
  • 预期结果 = var data = { physical: ['verified', 'pending'], reference: ['owner'], document: ['pending'] }
  • @GhassenLouhaichi 我试过了但没有用这个代码var hashMap = {} for (const i of data) { hashMap[i.type] = i } return hashMap

标签: javascript arrays object


【解决方案1】:

您可以将数据数组 reduce 转换为对象,并使用 spread operatordestructuringnullish coalescing 构建属性以及每个属性中的值。

data.reduce((acc, { type, value }) => ({
    ...acc,
    [type]: [...(acc[type] ?? []), value]
}), {});

【讨论】:

    【解决方案2】:

    此函数应按您的要求返回结果。

    function getUnique(data){
        let x = {};
        for(let i of data){
            if (!x[i.type]){x[i.type] = [];}
            x[i.type].push(i.value);
        }
        return x;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      相关资源
      最近更新 更多