【问题标题】:Split a combined List based on particular gender data is present for ID根据 ID 存在的特定性别数据拆分组合列表
【发布时间】:2020-08-25 20:49:09
【问题描述】:

这是一个组合列表,具有唯一的年龄代码。

    [
      {
        "ageCode": 1,
        "ageDesc": "0-4",
        "qM": 358,
        "sM": 158,
        "qF": 328,
        "sF": 258
      },
      {
        "ageCode": 3,
        "ageDesc": "15-59",
        "qM": 525,
        "sM": 125
      },
      {
        "ageCode": 4,
        "ageDesc": "60+",
        "qF": 458,
        "sF": 358
      }
    ]

需要根据年龄代码的 M 和 F 值是否都存在,将组合列表拆分为单个对象。转换后的列表如下所示。如果没有“M”日期,则不会有“性别”的对象:“M”同样适用于“F”

    [
      {
        "ageCode": 1,
        "ageDesc": "0-4",
        "q": 358,
        "s": 158,
        "gender": "M"
      },
      {
        "ageCode": 1,
        "ageDesc": "0-4",
        "q": 328,
        "s": 258,
        "gender": "F"
      },
      {
        "ageCode": 3,
        "ageDesc": "15-59",
        "q": 525,
        "s": 125,
        "gender": "M"
      },
      {
        "agCode": 4,
        "ageDesc": "60+",
        "q": 458,
        "s": 358,
        "gender": "F"
      }
    ]

已尝试的解决方案:

      for(let item  of this.ageData) {
            if (this.ageData.find((i) => { i.agCode=== item.agCode})){

    //}

        }

这里需要重复和多个for循环等问题,有没有有效的方法来实现这一点。

【问题讨论】:

  • 请显示预期结果。
  • @aepifano [ { "ageCode": 1, "ageDesc": "0-4", "q": 358, "s": 158, "gender": "M" }, { “ageCode”:1,“ageDesc”:“0-4”,“q”:328,“s”:258,“gender”:“F”},{“ageCode”:3,“ageDesc”:“15 -59”,“q”:525,“s”:125,“性别”:“M”},{“agCode”:4,“ageDesc”:“60+”,“q”:458,“s” :358,“性别”:“F”}]

标签: javascript angular typescript angular7 angular8


【解决方案1】:

尝试下一个代码

const combined = [
  {
    "ageCode": 1,
    "ageDesc": "0-4",
    "qM": 358,
    "sM": 158,
    "qF": 328,
    "sF": 258
  },
  {
    "ageCode": 3,
    "ageDesc": "15-59",
    "qM": 525,
    "sM": 125
  },
  {
    "ageCode": 4,
    "ageDesc": "60+",
    "qF": 458,
    "sF": 358
  }
];

const original = combined.reduce((result, item) => {
  if (item.qM !== undefined) {
    result.push({
      "ageCode": item.ageCode,
      "ageDesc": item.ageDesc,
      "q": item.qM,
      "s": item.sM,
      "gender": "M"
    });
  }
  if (item.qF !== undefined) {
    result.push({
      "ageCode": item.ageCode,
      "ageDesc": item.ageDesc,
      "q": item.qF,
      "s": item.sF,
      "gender": "F"
    });
  }
  return result;
}, []);

console.log(original);

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 2019-05-06
    • 1970-01-01
    • 2022-08-13
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    相关资源
    最近更新 更多