我正在尝试弄清楚如何使用打字稿将 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];
}
}
到目前为止,如果我只将一个对象值推入数据集数组,它就可以工作,但是如果我用 += 尝试它,它就不起作用。我做错了什么?
我尝试了多种方法,但似乎没有任何效果。我就是无法理解它。 提前致谢!
我相信您尝试做的是将数组推入数组。
+=
用于算术运算符或执行字符串连接。
你应该使用
Array.push()
.
dataSet["data"]
分配一个空数组。Array.push(/* value */)
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'
};