2016-11-22 8 views
0

私は以下のフォーマットの配列を持っています。私は各章の配列内に値を追加する問題があります。私は 'checked:true'のようなフィールドを追加する必要があります。私は同じ形式でデータを取得する必要があります。期待は、チャプター配列内に1つのフィールドを追加して同じフォーマットが必要です。配列は以下のようにのように見えるフィールドの章を追加した後angularjs内部配列に値を追加します

{ 
    "Books": [ 
    { 
     "label":"Book1", 
     "data": [ 
     { 
      "bookId": 3561, 
      "bookName": "AJ200", 
      "chapters": [ 
      { 
       "id": 3926, 
       "name": "red" 
      }, 
      { 
       "id": 3927, 
       "name": "yellow" 
      }, 
      { 
       "id": 3928, 
       "name": "black" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "label":"Book2", 
     "data":[ 
     { 
      "bookId": 3561, 
      "bookName": "AJ200", 
      "chapters": [ 
      { 
       "id": 3564, 
       "name": "blue" 
      }, 
      { 
       "id": 3565, 
       "name": "orange" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 

"chapters": [ 
      { 
       "id": 3564, 
       "name": "blue", 
       "checked":true 
      }, 
      { 
       "id": 3565, 
       "name": "orange" 
       "checked":true 
      } 
+1

どのように追加してコードを投稿しますか? –

+0

'checked'プロパティを反復して追加するだけです。 'Array.forEach'で十分です – Satpal

答えて

1

これは少し冗長ですが、すべてが同じ作品!

var myObject = 
{ 
    "Books": [ 
    { 
     "label":"Book1", 
     "data": [ 
     { 
      "bookId": 3561, 
      "bookName": "AJ200", 
      "chapters": [ 
      { 
       "id": 3926, 
       "name": "red" 
      }, 
      { 
       "id": 3927, 
       "name": "yellow" 
      }, 
      { 
       "id": 3928, 
       "name": "black" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "label":"Book2", 
     "data":[ 
     { 
      "bookId": 3561, 
      "bookName": "AJ200", 
      "chapters": [ 
      { 
       "id": 3564, 
       "name": "blue" 
      }, 
      { 
       "id": 3565, 
       "name": "orange" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 

var books = myObject.Books; 


for(var i=0; i<books.length; i++) { 

    var bookData = books[i].data; 

    for(var j=0;j<bookData.length;j++) { 

    var chapters = bookData[j].chapters; 

    for(var k=0;k<chapters.length;k++) { 

     chapters[k].checked = true; 

    } 

    } 

} 

console.log(JSON.stringify(books)); 
関連する問題