const obj = {}
let arr = [
{
id: 20, // id
// pid: 5 // 父級id
},
{
id: 10, // id
pid: 5 // 父級id
},
{
id: 1,
pid: 2
},
{
id: 3,
pid: 4
},
{
id: 2,
pid: 3
},
{
id: 100,
pid: 5
},
{
id: 10099,
pid: 6
},
{
id: 1000,
pid: 100
}
]
arr.forEach((i, index) => {
i.index = index
obj[i.id] = i
})
arr.forEach((i, index) => {
if (i.pid) {
if (obj[i.pid]) {
let pitem = arr[obj[i.pid].index]
if (!pitem.c) pitem.c = []
pitem.c.push(i)
i.r = true
}
}
})
let newarr = arr.filter(i => !i.r)
console.log(newarr)
js 數(shù)組變成樹結(jié)構(gòu)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 需要對數(shù)組進(jìn)行截取,一般是使用循環(huán),現(xiàn)在發(fā)現(xiàn)一個(gè)方式: array.splice(開始刪除的index,結(jié)束刪除的...
- 1、方法思路使用js數(shù)組自帶的filter()方法;數(shù)據(jù)格式要求,父子節(jié)點(diǎn)通過,Id,ParentId進(jìn)行關(guān)聯(lián)。默...
- 前言 在編程的大多數(shù)情況下我們的需求都是將數(shù)組扁平化進(jìn)行降維,但是確實(shí)有那么些情況是要我們將數(shù)組進(jìn)行在分類,從而要...
- 先玩?zhèn)€小游戲吧 拋一枚硬幣,如果正面朝上,你將獲得50元,背面朝上你將損失50元,你是否愿意參加這個(gè)游戲? 但是事...
- 還記得高二下期那段時(shí)間,為了在高壓下靜下心來,我每天下午吃完飯都會(huì)回到教室,坐在靠窗的位置練字,一個(gè)人靜靜地坐著,...