微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新排列 JSON 对象以显示在 jspdf-autotable 中

如何解决重新排列 JSON 对象以显示在 jspdf-autotable 中

我有以下对象,需要重新排列。请帮我将其从以下格式转换。 我正在从 Web 服务接收 Json 数组。我需要在 japdf-autotable 中显示。 我已经能够格式化表格并猜测以下数据结构应该可以工作。

如果有人有更好的想法也可以给我建议。

enter image description here

[
    {
        "location": "OFFICE","designation": "SWEETS","name": "BHOROT DOLUI","salary": 9500
    },{
        "location": "FACTORY","designation": "DRIVER","name": "SOUMEN PAL","salary": 10000
    },{
        "location": "OFFICE","designation": "STAFF","name": "NANDU YADAV","salary": 11000
    },{
        "location": "OUTLETS","name": "PANKAJ YADAV","salary": 10200
    },"name": "AJIT YADAV","salary": 9100
    },"name": "AVIJIT BHOWMICK","name": "ARUN DAS","name": "RAJESH KUMAR YADAV","salary": 18000
    },"name": "AMIT RAM","salary": 9000
    },"designation": "SALES BOY","name": "RAKESH HAZRA","name": "MD AKHTER","salary": 9000
    }
]

我需要以下格式。

[
    {
        "location": "OFFICE",data: [
            {
                "location": "OFFICE","salary": 9500
            }
        ],},"data": [
            {
                "location": "OFFICE","salary": 9100
            },{
                "location": "OFFICE","salary": 9500
            },"salary": 9000
            },]
    },"salary": 11000
            },"data": [
            {
                "location": "FACTORY","salary": 10000
            },{
                "location": "FACTORY","salary": 9000
            }
        ]
    },"salary": 18000
            }
        ]
    },"data": [
            {
                "location": "OUTLETS","salary": 10200
            },"salary": 10200
            }
        ]
    },"salary": 9500
            }
        ]
    }
]

解决方法

您可以使用 reducefind

轻松实现此目的

const arr = [
  {
    location: "OFFICE",designation: "SWEETS",name: "BHOROT DOLUI",salary: 9500,},{
    location: "FACTORY",designation: "DRIVER",name: "SOUMEN PAL",salary: 10000,{
    location: "OFFICE",designation: "STAFF",name: "NANDU YADAV",salary: 11000,{
    location: "OUTLETS",name: "PANKAJ YADAV",salary: 10200,name: "AJIT YADAV",salary: 9100,name: "AVIJIT BHOWMICK",name: "ARUN DAS",name: "RAJESH KUMAR YADAV",salary: 18000,name: "AMIT RAM",salary: 9000,designation: "SALES BOY",name: "RAKESH HAZRA",name: "MD AKHTER",];

const result = arr.reduce((acc,curr) => {
  const { location,designation,name,salary } = curr;
  const findEl = acc.find((o) => o.designation === designation && o.location === location);
  if (findEl) {
    findEl.data.push(curr);
  } else {
    acc.push({ location,data: [{ ...curr }] });
  }
  return acc;
},[]);

console.log(result);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?