gpt4 book ai didi

javascript - js平面数组到多级数组

转载 作者:行者123 更新时间:2023-11-30 11:51:55 24 4
gpt4 key购买 nike

我有一个这样的数组:

[{
iStatusId: 4,
vStatus: "Under Preparation",
iJobType: 1,
bIsActive: true,
iOrder: 2
},
{
iStatusId: 5,
vStatus: "Stamp & Signatures by Client",
iJobType: 1,
bIsActive: true,
iOrder: 3
},
{
iStatusId: 7,
vStatus: "CA & CE Certification",
iJobType: 1,
bIsActive: true,
iOrder: 6
},
{
iStatusId: 8,
vStatus: "Application Submission Date",
iJobType: 1,
bIsActive: true,
iOrder: 4
},
{
iStatusId: 9,
vStatus: "File in HQ-BRU/Tech ",
iJobType: 1,
bIsActive: true,
iOrder: 7
}]

我需要这样的:

[{iJobType: 1, data:
{
iStatusId: 4,
vStatus: "Under Preparation",
bIsActive: true,
iOrder: 2
},
{
iStatusId: 5,
vStatus: "Stamp & Signatures by Client",
bIsActive: true,
iOrder: 3
},
{
iStatusId: 7,
vStatus: "CA & CE Certification",
bIsActive: true,
iOrder: 6
},
{
iStatusId: 8,
vStatus: "Application Submission Date",
bIsActive: true,
iOrder: 4
},
{
iStatusId: 9,
vStatus: "File in HQ-BRU/Tech ",
verification",
bIsActive: true,
iOrder: 7
}]

请帮忙。

之前我写了一个函数将平面导航数组转换为树,但这对这里没有帮助。

$scope.navConvert = function(array) {
var map = {};
for (var i = 0; i < array.length; i++) {
var obj = array[i];
obj.items = [];

map[obj.NavId] = obj;

var parent = obj.NavParent || '-';
if (!map[parent]) {
map[parent] = {
items: []
};
}
map[parent].items.push(obj);
}
return map['-'].items;
}

所以,我正在寻找新的方向。

最佳答案

您可以使用哈希表作为 iJobType 值的引用,并以此为基础构建一个数组。

var data = [{ iStatusId: 4, vStatus: "Under Preparation", iJobType: 1, bIsActive: true, iOrder: 2 }, { iStatusId: 5, vStatus: "Stamp & Signatures by Client", iJobType: 1, bIsActive: true, iOrder: 3 }, { iStatusId: 7, vStatus: "CA & CE Certification", iJobType: 1, bIsActive: true, iOrder: 6 }, { iStatusId: 8, vStatus: "Application Submission Date", iJobType: 1, bIsActive: true, iOrder: 4 }, { iStatusId: 9, vStatus: "File in HQ-BRU/Tech ", iJobType: 1, bIsActive: true, iOrder: 7 }],
grouped = [];

data.forEach(function (a) {
if (!this[a.iJobType]) {
this[a.iJobType] = { iJobType: a.iJobType, data: [] };
grouped.push(this[a.iJobType]);
}
this[a.iJobType].data.push({
iStatusId: a.iStatusId,
vStatus: a.vStatus,
bIsActive: a.bIsActive,
iOrder: a.iOrder
});
}, Object.create(null));

console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - js平面数组到多级数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com