2 回答

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));
添加回答
舉報