我正在获取JSON数据。我正在使用时刻js作为时间格式。所以我想在获取数据后添加一些值。我的数据类似于(0.0,1.00,2.00,3.00,4.00到23.00)。现在我得到一些返回值,如2.00,3.00,4.00。我的JSON数据:
[{
"_id": {
"hr": 2,
"minut": 2
},
"totoal": 42
},
{
"_id": {
"hr": 4,
"minut": 3
},
"total": 144
},
{
"_id": {
"hr": 8,
"minut": 5
},
"total": 188
},
{
"_id": {
"hr": 9,
"minut": 10
},
"total": 128
}
]
var time =_.map(resp.data, function(res) {
return (res._id.hr + ':' + res._id.minut + 0)
});
当我在控制台中打印“时间”时,它显示为这样。
2:20,4:30,8:50.9:10
我想为图表设置此时间。我可以向您展示一些图表片段,以便更加了解。
但我想修改这些值,如
<00> 00:00,1:00,2:00,3:00,4:00,5:00,6:00,7:00,8:50,9:00,10:00, 11:50,12.00,13:10,14:00,15:00,14:30,15:30
现在我已经在数组形式的“time”变量中得到了这些“2:20,4:30,8:50,9:10”值。所以我想用图表显示每个小时。但我只获得了一些不是全部的值(那时候没有数据然后它没有返回时隙)。 SO数据是json数据中显示的总数。但是我想要显示所有没有数据的人(总计)。
答案 0 :(得分:1)
var x = [{
"_id": {
"hr": 2,
"minut": 2
},
"totoal": 42
},
{
"_id": {
"hr": 4,
"minut": 3
},
"total": 144
},
{
"_id": {
"hr": 8,
"minut": 5
},
"total": 188
},
{
"_id": {
"hr": 9,
"minut": 10
},
"total": 128
}
]
var time = [];
// you can replace x with resp.data from your code
// this line
// _.sortBy(x, function(res, idx) {
// will be
//_.sortBy(resp.data, function(res, idx) {
_.sortBy(x, function(res, idx) {
if (typeof x[idx - 1] !== 'undefined') {
if (((x[idx - 1])._id.hr + 1) !== res._id.hr) {
for (var i = x[idx - 1]._id.hr + 1; i < res._id.hr; i++) {
time.push(i + ':00');
}
}
}
time.push(('0' + res._id.hr).slice(-2) + ':' + ('0' + res._id.minut).slice(-2));
});
for (i = 1; i <= 12; i++) {
var x = time[i - 1];
if (x !== undefined) {
var hr = parseInt(x, 10);
if (hr > i) {
time.splice(i - 1, 0, ('0' + i).slice(-2) + ':00');
}
} else {
time.splice(i - 1, 0, ('0' + i).slice(-2) + ':00');
}
}
console.log(time)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>