やりたいこと
・JS(TypeScript)の連想配列において、階層を取得し、特定階層以上はfalseにしたい。
TypeScript
1[ 2 { 3 "id": 1, 4 "name": "フォルダA", 5 folder:[ 6 { 7 "id":2, 8 "name":"フォルダA-2" 9 }, 10 { 11 "id":3, 12 "name":"フォルダA-3" 13 }] 14 }, 15 { 16 "id": 4, 17 "name": "フォルダB" 18 }, 19 { 20 "id": 5, 21 "name": "フォルダC", 22 folder:[ 23 { 24 "id":6, 25 "name":"フォルダC-1", 26 folder:[ 27 { 28 "id": 7, 29 "name": "フォルダC-1-1" 30 }] 31 }] 32 } 33]
上記のような入れ子構造のデータがあります。
また、folderプロパティは必須ではない・idは一意です。
特定のidの階層を数え、特定の階層以上だった場合はfalseを返すメソッドを作成したいのですが、思い付かず悩んでいます。(再帰処理?)
ご教授頂けないでしょうか。
例:id=6 の場合は、countNode=1としたい。id=7の場合は、countNode=2としたい。(dataは上記のデータ全ての想定)
countNode>=10の場合はfalse
TypeScript
1const countNode(currentId:string,data:any):boolean => { 2 const node = 0; 3 const maxNode = 10; 4 //以下処理悩み中。 5}
あなたの回答
tips
プレビュー