下面是我的输入
input=
[{
"CalendarDate": "2019-10-01T00:00:00.000Z",
"SLA": 0.01,
"ContractBasedFlag": "Y",
"name": "A"
},
{
"CalendarDate": "2019-11-01T00:00:00.000Z",
"SLA": 0.02,
"ContractBasedFlag": "Y",
"name": "B"
},
{
"CalendarDate": "2019-12-01T00:00:00.000Z",
"SLA": 0.03,
"ContractBasedFlag": "Y",
"name": "C"
}
]
现在,如果我们查看这个输入,我需要通过拆分"CalendarDate“的值并使用"SLA”的整个值来创建一个新的json。
output=
[{
"201910": 0.01
}, {
"201911": 0.02
}, {
"201912": 0.03
}]
我试图在输入上使用reduce()函数来获取它,但仍然面临一些问题。
发布于 2018-06-25 01:39:37
像这样的东西
const ret = [{
CalendarDate: '2019-10-01T00:00:00.000Z',
SLA: 0.01,
ContractBasedFlag: 'Y',
name: 'A',
},
{
CalendarDate: '2019-11-01T00:00:00.000Z',
SLA: 0.02,
ContractBasedFlag: 'Y',
name: 'B',
},
{
CalendarDate: '2019-12-01T00:00:00.000Z',
SLA: 0.03,
ContractBasedFlag: 'Y',
name: 'C',
}
].map(x => ({
[`${x.CalendarDate.split('-')[0]}${x.CalendarDate.split('-')[1]}`]: x.SLA,
}));
console.log(ret);
发布于 2018-06-25 01:44:28
您可以使用map
遍历数组。使用substring
剪切字符串,使用replace
替换字符串。
var input = [{"CalendarDate":"2019-10-01T00:00:00.000Z","SLA":0.01,"ContractBasedFlag":"Y","name":"A"},{"CalendarDate":"2019-11-01T00:00:00.000Z","SLA":0.02,"ContractBasedFlag":"Y","name":"B"},{"CalendarDate":"2019-12-01T00:00:00.000Z","SLA":0.03,"ContractBasedFlag":"Y","name":"C"}];
var result = input.map(o => ({[o.CalendarDate.substring(0, 7).replace("-", "")]: o.SLA}))
console.log(result);
https://stackoverflow.com/questions/51012395
复制相似问题