【发布时间】:2019-11-06 07:44:02
【问题描述】:
我正在尝试将数据对象转换为自定义格式
这是我要转换的数据
[
{ Name: 15, GroupID: 1, Id: 1 },
{ Name: 16, GroupID: 1, Id: 1 },
{ Name: 17, GroupID: 2, Id: 2 },
{ Name: 18, GroupID: 2, Id: 2 },
{ Name: 15, GroupID: 3, Id: 3 },
{ Name: 16, GroupID: 3, Id: 3 },
{ Name: 17, GroupID: 4, Id: 4 },
{ Name: 18, GroupID: 4, Id: 4 }
];
这就是我想要实现的目标
{ GroupID: 1 },
{ Name: 15, Id: 1 },
{ Name: 16, Id: 1 },
{ GroupID: 2 },
{ Name: 17, Id: 2 },
{ Name: 18, Id: 2 },
{ GroupID: 3 },
{ Name: 15, Id: 3 },
{ Name: 16, Id: 3 },
{ GroupID: 4 },
{ Name: 17, Id: 4 },
{ Name: 18, Id: 4 }
这是我到目前为止尝试过的
var data = [
{ Name: 15, GroupID: 1, Id: 1 },
{ Name: 16, GroupID: 1, Id: 1 },
{ Name: 17, GroupID: 2, Id: 2 },
{ Name: 18, GroupID: 2, Id: 2 },
{ Name: 15, GroupID: 3, Id: 3 },
{ Name: 16, GroupID: 3, Id: 3 },
{ Name: 17, GroupID: 4, Id: 4 },
{ Name: 18, GroupID: 4, Id: 4 }
];
var previousGroupId;
var newObject = new Object();
for (index in data) {
var groupId = data[index].GroupID;
if (groupId != previousGroupId) {
var newGroup = "GroupId" + groupId;
newObject[newGroup] = new Array();
for (index in data) {
if (data[index].GroupID == groupId) {
var customObject = {
"GroupID": groupId,
"Name": data[index].Name,
"Id": data[index].Id
};
newObject[newGroup].push(customObject);
}
}
}
previousGroupId = groupId;
}
console.log(newObject);
即使我试图参考这个 Javascript group objects by property
任何建议都会有所帮助。
【问题讨论】:
-
请添加所有代码,您尝试了这个问题。想要的结果是一个数组吗?请编辑它以获得有效的数据结构。
-
我已经通过 jsfiddle 添加了所有代码,我将编辑 ds 以使其更清晰
-
这是一个数组吗?
标签: javascript arrays object grouping