簡體   English   中英

Angular - 如何將 Object 轉換為數組

[英]Angular - How can i transform an Object into an Array

我正在制作 ChartJS 庫的折線圖。 我有這個 object 並且我想將它轉換為一個數組,因為我想在它上面使用它的數據。 在網上搜索我發現 map 這是最簡單的方法,但我實際上不能在 Object 上使用它,但只能在 arrays 上使用。 如何將其轉換為數組或僅使用折線圖上的 json 數據? 這就是我現在擁有的 json object。

{labels: Array(2), values: Array(2)}
labels: (2) ["sales-be", "sales-mw"]
values: (2) [48, 8]

我試過這樣,但它給了我錯誤:

var labels = this.errorsList.map(function (e) {
      return e.labels;
    });

    var datas = this.errorsList.map(function (e) {
      return e.values;
    });

類型錯誤:this.errorsList.map 不是 function

屬性已經是 arrays。 所以你可以直接訪問它們。

嘗試以下

export class AppComponent {
  errorsList = {
    labels: ["sales-be", "sales-mw"],
    values: [48, 8]
  };

  ngOnInit() {
    this.chartData = [{
      data: this.errorsList.values,
      label: 'Sales',
      fill: false
    }];

    this.chartLabels = this.errorsList.labels;

    this.chartColors = [{
      backgroundColor: 'rgba(0, 0, 0, 0)',
      borderColor: 'rgba(255, 15, 15, 1)'
    }];
  };
}

模板

<div id="chart-container">
    <canvas #myCanvas id="canvas" baseChart [chartType]="chartType" [datasets]="chartData" [labels]="chartLabels" [colors]="chartColors" [options]="chartOptions"></canvas>
</div>

工作示例: Stackblitz

這里的errorsList是用硬值定義的,只是為了說明。 您不必在代碼中定義它。

同樣,此代碼是一個示例,僅用於說明如何使用 object 中的屬性,僅此而已。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM