2017-04-25 129 views
1

是否有angularJs任何可能的方式來此數組對象的轉換:對象數組的轉換陣列Angularjs

[{"tickets":1,"month":"june","year":2016},{"tickets":2,"month":"june","year":2015},{"tickets":3,"month":"december","year":2015}] 

像這樣的數組:

[['tickets', 'month','year'], [1, "june",2016],[3, "june",2015],[1, "december",2015]] 

回答

-1

當然,它的純JavaScript可以處理

var array1 = [{"tickets":1,"month":"june","year":2016}, 
 
    {"tickets":2,"month":"june","year":2015}, 
 
    {"tickets":3,"month":"december","year":2015}]; 
 

 
    var array2 = [['tickets', 'month','year']]; 
 

 
array1.forEach(function(item){ 
 
    array2.push([item.tickets, item.month, item.year]); 
 
}) 
 
    
 
console.log(array2);

UPDATE

更靈活的方式,通過JK_Jha

var array1 = [{"tickets":1,"month":"june","year":2016}, 
 
     {"tickets":2,"month":"june","year":2015}, 
 
     {"tickets":3,"month":"december","year":2015}]; 
 

 
var array2 = [Object.keys(array1[0])]; 
 

 
array1.forEach(function(item){ 
 
    array2.push([item.tickets, item.month, item.year]); 
 
}) 
 

 
console.log(array2);

+0

爲什麼youu硬編碼這樣:var數組2 = [ '門票', '月', '年']; – undefined

+0

因爲,我相信'array2'的第一個數組將作爲某種表格或其他東西的標題 – Leguest

+1

您可以剛完成Object.keys(array1 [0])。這更好 – undefined

1

辦法勸使用Array#reduce()Array#concat()不依賴於知道任何的屬性名稱或硬的編碼結果陣列結構

let data = [{"tickets":1,"month":"june","year":2016},{"tickets":2,"month":"june","year":2015},{"tickets":3,"month":"december","year":2015}]; 
 

 
let res = data.reduce((acc, curr) => { 
 
    return acc.concat([acc[0].map((key) => curr[key])]); 
 
}, [Object.keys(data[0])]); 
 

 
console.log(res)