2016-12-21 4 views
-2

私はすべてのIDをjavascriptでプリントアウトしようとしていますが、どうすればいいですか?以下は質問ですか?JavaScriptコードを再帰的に解析してコンソール内のすべてのIDを印刷する

javascriptオブジェクトを次の点を考慮

var obj =[{ 

    id: "A", 
    children:[{  
    id: "B", 
    children: [{ 
     id: "C", 
     children: [{ 
     id: "D", 
     children: [{ 
      id: "E", 
      children: [{ 
      id: "F" 
      }] 
     }] 
     }, { 
     id: "G", 
     children: { 
      id: "H" 
     } 
     }] 
    }, { 
     id: "I" 
    }] 
    }, { 
    id: "J", 
    children: [{ 
     id: "K" 
    }] 
    }] 
}, { 
    id: "L" 
}, { 
    id: "M", 
    children: { 
    id: "N", 
    children: [{ 
     id: "O" 
    }] 
    } 
}, { 
    id: "P" 
}]; 

再帰的にそれを解析し、出力がどのように見えるようにコンソールですべてのIDを印刷するためにJavaScriptコード:あなたが初心者していると仮定すると、

A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
L 
M 
N 
O 
P 
+0

にconsole.logとループ。 Googleそれ – zerohero

+0

@mvc_help私はそれを試して、私は新鮮なJavaスクリプト..とJSONを学んでいます。 – happysingh

+0

@mvc_help var recu = ''; function scan(obj) { var k; (obj.hasOwnProperty(k)){ // body + = 'スキャンプロパティ' + k + '
';(オブジェクトのオブジェクト){ スキャン(obj [k]); } } } else { recu + = '' + obj + '
'; }; }; スキャン(obj); document.getElementById( 'output')。innerHTML = recu; – happysingh

答えて

1

、私は実際に考え始めることができるように、ちょうどヒントを与えることができます。

typeofは変数の型を与えることができ、Object.keys(<ObjName>)はオブジェクトのキーのリストを与えることができます。

これを使用して幅優先検索または深さ優先探索を行うことができると考えてください。

0

const obj = [{id: "A", children:[{id: "B", children: [{ id: "C", children: [{ id: "D", children: [{ id: "E", children: [{ id: "F" }] }] }, { id: "G", children: { id: "H" } }] }, { id: "I" }] }, { id: "J", children: [{ id: "K" }] }] }, { id: "L" }, { id: "M", children: { id: "N", children: [{ id: "O" }] } }, { id: "P" }]; 
 

 
const printIds = (object) => { 
 
    Object.keys(object).forEach(k => { 
 
    return typeof object[k] === 'object' 
 
     ? printIds(object[k]) 
 
     : k === 'id' ? console.log(object[k]) : null 
 
    }) 
 
} 
 

 
printIds(obj)

関連する問題