Javascript 如何通过将值作为另一个对象的键来创建新对象?

Javascript 如何通过将值作为另一个对象的键来创建新对象?,javascript,arrays,dictionary,lodash,Javascript,Arrays,Dictionary,Lodash,我有一个对象,我试图通过将所有相同的值作为键来创建一个新对象。比如说, data = [ { "sum(PendingBenNotValidated)": 35.0, "stateName": "Andaman & Nicobar Islands", "diagMonth": 4, "diagYear": 2018, "TypeOfPatient": "IndiaTbPrivate" },

我有一个对象,我试图通过将所有相同的值作为键来创建一个新对象。比如说,

data = [
    {
        "sum(PendingBenNotValidated)": 35.0,
        "stateName": "Andaman & Nicobar Islands",
        "diagMonth": 4,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    },
    {
        "sum(PendingBenNotValidated)": 8.0,
        "stateName": "Andaman & Nicobar Islands",
        "diagMonth": 5,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    },
    {
        "sum(PendingBenNotValidated)": 19.0,
        "stateName": "Andaman & Nicobar Islands",
        "diagMonth": 7,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    },
    {
        "sum(PendingBenNotValidated)": 16.0,
        "stateName": "Andaman & Nicobar Islands",
        "diagMonth": 8,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    },
    {
        "sum(PendingBenNotValidated)": 1.0,
        "stateName": "Andhra Pradesh",
        "diagMonth": 1,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    },
    {
        "sum(PendingBenNotValidated)": 0.0,
        "stateName": "Andhra Pradesh",
        "diagMonth": 2,
        "diagYear": 2018,
        "TypeOfPatient": "IndiaTbPrivate"
    }]
我必须使用stateName作为键来获取新对象,如下所示:

new data = [{Andaman & Nicobar Islands: [{PendingBenNotValidated: 35, diagMonth: 4, diagYear: 2018, TypeOfPatient: "IndiaTbPrivate"},{PendingBenNotValidated: 19, diagMonth: 7, diagYear: 2018, TypeOfPatient: "IndiaTbPrivate"}], Andhra Pradesh: [{PendingBenNotValidated: 0, , diagMonth: 2, diagYear: 2018, TypeOfPatient: "IndiaTbPrivate"}]

有什么办法吗?

首先,您需要修复数据属性,因为它无效。 然后,您只需在数组中循环,并基于
stateName
属性生成一个新对象

var数据=[
{PendingBenNotValidated:35,州名:“安达曼和尼科巴群岛”,诊断月份:4,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:8,州名:“安达曼和尼科巴群岛”,诊断月份:5,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:19,州名:“安达曼和尼科巴群岛”,诊断月份:7,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:16,州名:“安达曼和尼科巴群岛”,诊断月份:8,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:9,州名:“安达曼和尼科巴群岛”,诊断月份:9,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:9,州名:“安达曼和尼科巴群岛”,诊断月份:10,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:16,州名:“安达曼和尼科巴群岛”,诊断月份:11,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:12,州名:“安达曼和尼科巴群岛”,诊断月份:12,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:1,州名:“安得拉邦”,诊断月份:1,诊断年份:2018,患者类型:“IndiaTbPrivate”},
{PendingBenNotValidated:0,州名:“安得拉邦”,诊断月份:2,诊断年份:2018,患者类型:“IndiaTbPrivate”};
让条目={};
data.map((e)=>条目[e.stateName]=e);

控制台日志(条目)您是否有任何代码尝试此操作?您应该尝试迭代
数据
数组,并通过item键将项存储在另一个对象中首先
数据
不是有效的对象。首先修复该问题,以便我们准确地知道对象的外观