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

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

javascript 一個(gè)復(fù)雜的對象,怎么通過value獲取到key

javascript 一個(gè)復(fù)雜的對象,怎么通過value獲取到key

有這樣一個(gè)對象,想通過nodeId獲取key{childNode:{nodeId:'sid-start',childNode:{nodeId:'aaaa',conditionNodes:[{nodeId:'bbbb',childNode:{nodeId:'cccc'}},{nodeId:'dddd',}],childNode:{nodeId:'eeee',}}}}比如知道nodeId為cccc,得到childNode>childNode>conditionNodes[0]>childNode??艘幌挛缌耍蚯蟠笈儙兔纯?
查看完整描述

2 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

樹的遍歷是編程的基本功,野路子自學(xué)出身的我只能寫個(gè)蹩腳的遞歸給你自個(gè)琢磨改進(jìn)了:
constdepth=(obj,value,path)=>{
for(letkeyinobj){
if(obj.hasOwnProperty(key)){
constcurrent=obj[key];
constsubPath=[key].concat(path);
if(currentinstanceofObject){
constsubResult=depth(current,value,subPath);
if(!!subResult.length){
returnsubResult;
}
}elseif(current===value){
returnsubPath
}else{}
}
}
return[]
};
出來的結(jié)果將會是反的,需要進(jìn)行一次.reverse操作。
                            
查看完整回答
反對 回復(fù) 2019-09-26
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

想想好像除了遞歸,就只??磮鼍叭∏闪?。
varvalue=4;
varobj={
a:1,
b:[2,3],
c:{d:4,e:5}
};
varreg=newRegExp(`[,|{]"([^"]+?)":${value}[,|}]`);
varres=JSON.stringify(obj).match(reg);
console.log(res&&res[1]);//d
                            
查看完整回答
反對 回復(fù) 2019-09-26
  • 2 回答
  • 0 關(guān)注
  • 619 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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