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元素分到一组,没有相同父元素的单独一组,顺序不改变
原生 - 名字将数组对象中名字相同的项组成一个相同的数组
最新推荐文章于 2022-10-12 22:54:54 发布