2017-01-20 9 views
-2

私はキーを使っていくつかのフィールドを抽出する辞書を持っています。だから私が望むのは、この辞書とキーを渡す関数を呼び出すことです。javascriptのフィールドを抽出する

var posts = { 
    "code":"ok", 
    "data":[ 
      { 
       "id":1, 
       "username":"example1", 
       "data": 
         { 
         "id":4, 
         "name":"fran" 
         }, 
      }, 
      { 
       "id":2, 
       "username":"example2", 
       "data": 
        { 
        "id":5, 
        "name":"manuel" 
        }    
      } 
      ] 
    }; 

私は単純な辞書値としてネストされた値を持つ新しい辞書を用意したいと思います。あなたの辞書機能は、私はこの1つを試してみました

+6

これまでに何を試みましたか?質問にあなた自身の努力を加えてみることができますか? – evolutionxbox

答えて

0
function dict(obj) 
{ 
    var list = Object.assign({},obj).data; 

    list.forEach((e,i,a) => { 
     e.name = e.data.name; 
     delete e.data; 
    }); 

    return list; 
} 

。私は問題を抱えていると思う。なぜなら、反復でノードが「名前」であるときに辞書を作成しているからだ。だから私はそれがOKか、これを行うための他の方法があるかどうかを確認したい。

var list = [];  
    var dict = {}; 
    function iterate(obj, stack) { 
     for (var property in obj) {   
      if (obj.hasOwnProperty(property)) { 
       if (typeof obj[property] == "object") {      
        iterate(obj[property], stack + '.' + property);      
       } else { 
        console.log(property + " " + obj[property]);   
        dict[property] = obj[property]; 
        if(property=="name"){ 
         list.push(dict); 
         dict ={}; 
        } 
       } 
      }   
     } 

     return list; 
    } 

    var simplified = iterate(posts.data, ''); 
    console.log(simplified); 
0

どのように見えるべきかだ

  [{ 
      "id":1, 
      "username":"example1", 
      "name":"fran" 
      }, 

      "id":2, 
      "username":"example2", 
      "name":"manuel" 
      }}    
関連する問題