第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

操作對象里的值

操作對象里的值

縹緲止盈 2019-03-28 22:19:12
var arr = [    {        name:"新聞",        id:1,        parent_id: 0,        child:[        {          name:"廣東新聞",          id:2,          parent_id: 1,            child:[              {                now: true,                  name:"深圳新聞",                  id:4,                  parent_id: 2              },{                now: false,                  name:"廣州新聞",                  id:5,                  parent_id: 2              }          ]        },        {          name:"湖南新聞",          id:3,          parent_id: 1,          child:[            {              now: true,              name:"株洲新聞",              parent_id: 3,              id:6            },{              now: false,              name:"長沙新聞",              parent_id: 3,              id:7            }          ]        }]      },      {        name:"學(xué)院",        id:8,        parent_id: 0,        child:[        {          name:"廣東學(xué)院",          id:9,          parent_id: 8,            child:[              {                now: true,                  name: "深圳大學(xué)",                  id:11,                  parent_id: 9              },{                now: false,                  name:"中山大學(xué)",                  id:12,                  parent_id: 9              }          ]        },        {          name:"湖南學(xué)院",          id:10,          parent_id: 8,          child:[            {              now: false,              name:"長沙師范學(xué)院",              parent_id: 10,              id:13            },{              now: false,              name:"株洲學(xué)院",              parent_id: 10,              id:14            }          ]        }]      },    ];我想獲取數(shù)組的最后級一級如果now為true的話根據(jù)他的parent_id找到他的父級,然后獲取它以及它父級的id,這樣不斷向上獲取它的父級最后返回一個數(shù)組結(jié)果是[1,2,3,4,6,8,9,11]這樣該怎么查找?
查看完整描述

2 回答

?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

你的意思是會有多個諸如[1,2...11]類似這樣導(dǎo)航到最終now=true的數(shù)組?

如果是這樣,其實你應(yīng)該從頂部開始查詢,查詢到一級有分支就深拷貝一個數(shù)組對應(yīng)不同分支,直到底層,然后排除掉不符合要求的。這樣可能效率更高一些。當(dāng)然,這樣做的前提是提供的數(shù)據(jù)是符合結(jié)構(gòu)的。


正確的只有3個路徑,是[[1,2,4],[1,3,6],[8,9,11]]


//實現(xiàn)的代碼

function objP(bArr, inArr){

    var rt=[];

    for(var i=0;i<inArr.length;i++){

        if(inArr[i].now===false){

            continue;

        } else if(inArr[i].now){

            var newBArr=bArr.concat(inArr[i].id);

            rt.push(newBArr);

            continue;

        } else if(inArr[i].child){

            var tmp=objP([inArr[i].id], inArr[i].child)

            for(var j=0;j<tmp.length;j++){

                rt.push(bArr.concat(tmp[j]));

            }

        } 

    }

    return rt;

}   


console.log(objP([],arr));  


查看完整回答
反對 回復(fù) 2019-04-04
?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

你的思路很明確,學(xué)一下js的基礎(chǔ)語法和數(shù)組操作就知道怎么做了。


查看完整回答
反對 回復(fù) 2019-04-04
  • 2 回答
  • 0 關(guān)注
  • 481 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號