2015-10-30 39 views
-1

我的數據看起來是這樣的:如何通過對象的數組循環,這是另一對象的數組中 - 的JavaScript

var songs = [ 
    {Object1: [{Obj1: songId}]}, 
    {Object2: [{Obj1: songId}]} 
]; 

什麼是搶到最好的方式,所有的songId從整個歌曲的陣列?

+0

哈克和緩慢的方式:'JSON.stringify(聽歌).match(/ songIdRegex /)' - 會給你的ID陣列 – webduvet

+0

您也可以嵌套'forEach'或'map'調用你想要通過 –

+0

對你自己的函數進行遍歷的數組,或者導入下劃線庫並使用它們 –

回答

1
var songsIdCollection = []; 

songs.forEach(function(wrappedSongData) { 
    //{ Object1: [ {Obj1: songId} ] } 
    wrappedSongData.forEach(function(songIdMaps) { 
     //[ {Obj1: songId} ] 
     songIdMaps.forEach(function(songIdMap) { 
      //{Obj1: songId} 
      songsIdCollection.push(songIdMap.Obj1); 
     }); 
    }); 
}); 
2

一些迭代會做。用最少的代碼

var songs = [ 
 
     { Object1: [{ Obj1: 8 }] }, 
 
     { Object2: [{ Obj1: 99 }] } 
 
    ], 
 
    songId = []; 
 

 
songs.forEach(function (o) { 
 
    Object.keys(o).forEach(function (k) { 
 
     o[k].forEach(function (a) { 
 
      songId.push(a.Obj1); 
 
     }); 
 
    }); 
 
}); 
 
document.write('<pre>' + JSON.stringify(songId, 0, 4) + '</pre>');

相關問題