1 Câu hỏi: Biểu đồ nhiều tập dữ liệu từ bảng

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng tạo một biểu đồ nhiều dòng bằng biểu đồ js và góc. Sử dụng bản đồ Tôi có thể giảm dữ liệu json thành mảng Thứ nguyên đơn nhưng tôi cần chuyển đổi một cột (đầu) thành nhãn với cột trung bình là trục y và cột dấu thời gian dưới dạng trục x

Định dạng json mẫu o /p từ DB

var dataset = 
[{id:1, head:test1,timestamp:5/6/2019,average:12},]
{id:2, head:test1,timestamp:6/6/2019,average:15},
{id:3, head:test2,timestamp:5/6/2019,average:7},
{id:4, head:test2,timestamp:6/6/2019,average:20},
{id:5, head:test3,timestamp:6/6/2019,average:13}]

Định dạng dự kiến ​​cho chartjs cho đầu ra đa trục

 {data : [12, 15], label:test1},
 {data : [7, 20], label:test2},
 {data : [0, 13], label:test3},
.
var labels = dataset.map(function(obj) {return obj.head});
var tstamp = dataset.map(function(obj) {return obj.timestamp});
var tavg = dataset.map(function(obj) {return obj.average});

Vui lòng cho tôi biết đề xuất của bạn về cách chuyển đổi dữ liệu sang định dạng mong đợi.

    
1
1 Câu trả lời                              1                         

Trước tiên, bạn phải giảm đối tượng bằng cách lập chỉ mục kết quả:

const data = dataset.reduce((accu, item) => {
  if (accu[item.head] == null) accu[item.head] = { data: [], label: item.head };
  accu[item.head].data.push(item.average);
  return accu;
}, {});

sau đó trích xuất các giá trị từ kết quả

const result = Object.values(data);

sau đó, bạn có thể đệm trường .data để có được mức độ phù hợp

result.forEach(line => {
  while (line.data.length < 2) 
    line.data.unshift(0);
});

    
0
2019-05-08 16: 23: 28Z
  1. Cảm ơn bạn, nó đã hoạt động
    2019-05-10 16: 39: 41Z
nguồn đặt đây