Angular 将 JSON 数据推入数组

问题描述 投票:0回答:1

我正在尝试弄清楚如何使用打字稿将 json 对象推送到数组中。我设法用 json 对象的一个值做到了,但我也需要用第二个值做到这一点。

这是 JSON 文件的结构:

data = [
    {
      "value1": 8,
      "value2": 9,
      "weekday": "2023-02-27"
    },
    {
      "value1": 8,
      "value2": 9,
      "weekday": "2023-02-28"
    },
    {
      "value1": 8,
      "value2": 9,
      "weekday": "2023-03-01"
    },
    {
      "value1": 8,
      "value2": 5,
      "weekday": "2023-03-02"
    },
    {
      "value1": 8,
      "value2": 9,
      "weekday": "2023-03-03"
    }
  ];

这是我的代码:

setData() {
    let data_value1:any[] = [];
    let data_value2:any[] = [];
    let labels:any[] = [];
    this.data.forEach((entry) => {
      data_value1.push(entry['value1']);
      data_value2.push(entry['value2']);
      labels.push(getDayofWeek(entry['weekday']));
    });

    this.barChartData.labels = labels;
    
    let dataSet:any = {};
    dataSet['data'] += data_value1;
    dataSet['data'] += data_value2;
    dataSet['label'] = 'Test';
    this.barChartData.datasets.push(dataSet);

    function getDayofWeek(date:any) {
      const dayOfWeek = new Date(date).getDay();
      return isNaN(dayOfWeek) ? null : 
      ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][dayOfWeek];
    }
  }

到目前为止,如果我只将一个对象值推入数据集数组,它就可以工作,但是如果我用 += 尝试它,它就不起作用。我做错了什么?

我尝试了多种方法,但似乎没有任何效果。我就是无法理解它。 提前致谢!

arrays angular typescript chart.js ng2-charts
1个回答
0
投票

我相信您尝试做的是将数组推入数组。

+=
用于算术运算符或执行字符串连接。

你应该使用

Array.push()
.

  1. dataSet["data"]
    分配一个空数组。
  2. 通过
    Array.push(/* value */)
  3. 将值推入数组
let dataSet:any = {
  data: [],
  label: ''
};

dataSet['data'].push(data_value1);
dataSet['data'].push(data_value2);
dataSet['label'] = 'Test';

或者,您可以在

dataSet
声明如下时进行赋值:

let dataSet:any = {
  data: [data_value1, data_value2],
  label: 'Test'
};
© www.soinside.com 2019 - 2024. All rights reserved.