我有以下表格数据:
[{date: "01/01/2000", value: "1"},{date: "01/02/2000", value: "2"},{date: "01/01/2001", value: "2"},{date: "01/01/2002", value: "1.5"},{date: "01/02/2002", value: "1.6"}]
我想将其转换为列:
[{Year: "2000", Jan: "1", Feb: "2"},
{Year: "2001", Jan: "", Feb: "2"},
{Year: "2002", Jan: "1.5", Feb: "1.6"}]
如何在 Angular 中使用 RxJS/TypeScript/JavaScipt 更改它?
谢谢。
最佳答案
请参阅下面使用reduce的方法
const initial = [{date: "01/01/2000", value: "1"},{date: "01/02/2000", value: "2"},{date: "01/01/2001", value: "2"},{date: "01/01/2002", value: "1.5"},{date: "01/02/2002", value: "1.6"}]
const allMonths = initial.reduce((prev, next) => {
const date = next.date.substr(6,4) + '/' + next.date.substr(3,2)
const month = new Date(date).toLocaleString('default', { month: 'short' });
return {...prev, [month]: ''}
}, {})
const temp = initial.reduce(
(prev, next) => {
const date = next.date.substr(6,4) + '/' + next.date.substr(3,2)
const month = new Date(date).toLocaleString('default', { month: 'short' });
const Year = new Date(date).getFullYear()
let prevYearVal = prev[Year]
if(!prevYearVal) { prevYearVal = {Year,...allMonths} ;}
return {...prev, [Year]: {...prevYearVal,Year, [month]: next.value}}
return prev
},
{}
)
const final = Object.values(temp)
console.log(final)
关于javascript - 使用 RxJS/TypeScript/JavaScript 将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66320817/