getNew = () => {
let beforeData = [
{
parentId: "aaa",
id: "0",
age: "40"
},
{
parentId: "bbb",
id: "1",
age: "20"
},
{
parentId: "ccc",
id: "2",
age: "21"
},
{
// 不带父元素
// parentId: "aaaaa",
id: "7",
age: "40"
},
{
parentId: "ddd",
id: "3111",
age: "50"
},
{
parentId: "ddd",
id: "3",
age: "50"
},
{
parentId: "aaa",
id: "4",
age: "10"
},
{
parentId: "bbb",
id: "5",
age: "22"
},
{
parentId: "ccc",
id: "6",
age: "40"
},
];
// 分组后的数组
let afterData = []
let tempArr = [];
for (let i = 0; i < beforeData.length; i++) {
// 判断没有父元素
if (!beforeData[i].parentId) {
afterData.push({
origin: [beforeData[i]],
})
continue
}
if (tempArr.indexOf(beforeData[i].parentId) === -1) {
afterData.push({
parentId: beforeData[i].parentId,
origin: [beforeData[i]]
});
tempArr.push(beforeData[i].parentId);
} else {
for (let j = 0; j < afterData.length; j++) {
if (afterData[j].parentId == beforeData[i].parentId) {
afterData[j].origin.push(beforeData[i]);
break;
}
}
}
}
return afterData
}
console.log(getNew()) // 相同父id元素分到一组,没有相同父元素的单独一组,顺序不改变
原生 - 名字将数组对象中名字相同的项组成一个相同的数组
最新推荐文章于 2024-06-04 20:44:18 发布
本文介绍了一种JavaScript算法,通过遍历数据,将具有相同父ID的元素分组到一起,同时保留无父元素为单独一组。实现过程中,利用了数组操作和条件判断,确保了数据的组织结构和原始顺序不变。
1042

被折叠的 条评论
为什么被折叠?



