私はキーを入力として受け取り、そのキーの値をフェッチするオブジェクトの配列を反復する再帰的メソッドを持っています。Typescript/Javascript:キーの値を取得するための再帰的メソッド
しかし、あまりにも多くのfor
ループは、コードのこの部分に関与している
findKeyFun(passedKey: string): string {
let tempVal = null;
for(let i=0; i< this.valueArray.length; i++) {
if(this.valueArray[i].children) {
for(let j=0; j< this.valueArray[i].children.length; j++) {
if(this.valueArray[i].children[j].children) {
for(let k=0; k<this.valueArray[i].children[j].children.length; k++){
if(this.valueArray[i].children[j].children[k].key==passedKey){
tempVal = this.valueArray[i].children[j].children[k].value;
return tempVal;
}
}
}
}
}
}
return tempVal;
}
。キーの位置に関係なく、この再帰的メソッドを作るにはどうすればよいですか?
あなたのコードはちょっと難しいです。あなたのデータの構造は何ですか? – aeid
@aeidそれはオブジェクトの配列であり、各オブジェクトは子供/孫を持っているかもしれないし、持っていないかもしれません。 – Protagonist
再帰は見つけることができますが、 'array.reduce'ははるかに優れています。 – aeid