对象数组的转换阵列Angularjs
问题描述:
是否有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]]
答
当然,它的纯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);
答
办法劝使用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)
为什么youu硬编码这样:var数组2 = [ '门票', '月', '年']; – undefined
因为,我相信'array2'的第一个数组将作为某种表格或其他东西的标题 – Leguest
您可以刚完成Object.keys(array1 [0])。这更好 – undefined