【问题标题】:How to group an array of dynamic objects based on an a property value in react js / javascript如何根据反应js / javascript中的属性值对动态对象数组进行分组
【发布时间】:2020-09-19 11:15:07
【问题描述】:

我有一个这样的对象 -

[{"genericName":"genesName test","genericId":3,"code":"generics"},{"genericName":"genesName fhfghsd","genericId":8,"code":"generics"},{"genericName":"genesName fhld","genericId":11,"code":"generics"}]

我想变成这样-

{"generics": {"genericId": 3}},
{"generics": {"genericId": 8}},
{"generics": {"genericId": 11}}

我该怎么做?

【问题讨论】:

  • 你的意思是这样分组吗? { "generics": [3, 8, 11] } 问题似乎有点模糊。
  • @srx , 如下:(
  • 这里的泛型部分是静态的,我可以用 - [{"genericName":"genesName test","genericId":3"}, {"genericName":"genesName fhfghsd", "genericId":8}, {"genericName":"genesName fhld","genericId":11}]

标签: javascript arrays json reactjs object


【解决方案1】:

使用map 和解构

const data = [
  { genericName: "genesName test", genericId: 3, code: "generics" },
  { genericName: "genesName fhfghsd", genericId: 8, code: "generics" },
  { genericName: "genesName fhld", genericId: 11, code: "generics" },
];

const res = data.map(({ code, genericId }) => ({ [code]: { genericId } }));

console.log(res);

【讨论】:

    【解决方案2】:

    你可以试试Arraymap方法:

    const obj = [{
      "genericName": "genesName test",
      "genericId": 3,
      "code": "generics"
    }, {
      "genericName": "genesName fhfghsd",
      "genericId": 8,
      "code": "generics"
    }, {
      "genericName": "genesName fhld",
      "genericId": 11,
      "code": "generics"
    }]
    
    const mapObjToResult = (item, idx, arr) => {
      return {
        [item.code]: {
          genericId: item.genericId
        }
      }
    }
    
    const result = obj.map(mapObjToResult);
    
    console.log(result);

    祝你好运……

    【讨论】:

      【解决方案3】:

      如果你想要对象数组,那么这个?

      let gens = [
        {"genericName":"genesName test","genericId":3,"code":"generics"},
        {"genericName":"genesName fhfghsd","genericId":8,"code":"generics"},
        {"genericName":"genesName fhld","genericId":11,"code":"generics"}
      ]
      
      result = gens.map(item => ({ [item.code] : {genericId: item.genericId}})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 2014-08-05
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多