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键将项存储在另一个对象中首先数据
不是有效的对象。首先修复该问题,以便我们准确地知道对象的外观