亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

有沒有人遇到過這個問題哈!js 樹第歸向上找父級修改數據 怎么只能改到一層呢!

有沒有人遇到過這個問題哈!js 樹第歸向上找父級修改數據 怎么只能改到一層呢!

aluckdog 2019-10-16 16:56:07
leta=[{key:1,title:'一級',parentKey:0,status:{choose:false},children:[{key:10,title:'一級-0',parentKey:1,status:{choose:false},children:[{key:15,title:'一級-0-1',parentKey:10,status:{choose:false}}]},{key:11,title:'一級-1',parentKey:1,status:{choose:false}},{key:12,title:'一級-2',parentKey:1,status:{choose:false}},{key:13,title:'一級-3',parentKey:1,status:{choose:false}},{key:14,title:'一級-4',parentKey:1,status:{choose:false}}]}];letparent=(data,obj)=>{data.forEach(item=>{if(item.key===obj.parentKey){//改為trueitem.status.choose=true;parent(data,item);}if(item.children&&item.children.length){parent(item.children,obj);}});};letobj={key:15,title:'一級-0-1',parentKey:10,status:{choose:false}};parent(a,obj);console.log(a);可是執行結果下來就只有key10修改到了循環上去理應key1的choose為true啊目前只有key修改到了!看了好半會。沒理解到為啥不執行上去!
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

問題在parent(data,item)這句。每次遞歸,data是什么呢?你只往下找了,沒把父級傳進去呀。
這種已經告訴你parentKey的,直接把層級打平,直接找不就好了。
如果不使用parentKey也可以從上往下,用一個變量記錄路徑就好了。如果使用遞歸,那么遞歸要有返回值判斷是否找到,也是可以的?;蛘咿D成字符串用正則也可以。
                            
查看完整回答
反對 回復 2019-10-16
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

當確定有子集有查找項時,父級key修改為true
leta=[
{
key:1,
title:'一級',
parentKey:0,
status:{choose:false},
children:[
{
key:10,title:'一級-0',parentKey:1,status:{choose:false},children:[
{key:15,title:'一級-0-1',parentKey:10,status:{choose:false}}
]
},
{key:11,title:'一級-1',parentKey:1,status:{choose:false}},
{key:12,title:'一級-2',parentKey:1,status:{choose:false}},
{key:13,title:'一級-3',parentKey:1,status:{choose:false}},
{key:14,title:'一級-4',parentKey:1,status:{choose:false}}
]
}
];
letparent=(data,obj)=>{
data.forEach(item=>{
if(item.key===obj.parentKey){
//改為true
data.key.choose=true//當確定有子集有查找項時,父級key修改為true
item.status.choose=true;
parent(data,item);
}
if(item.children&&item.children.length){
item.status.choose=true;//當確定有子集
parent(item.children,obj);
}
});
};
letobj={key:15,title:'一級-0-1',parentKey:10,status:{choose:false}};
parent(a,obj);
console.log(a);
                            
查看完整回答
反對 回復 2019-10-16
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號