将这样的数组数组压入echarts的series中该怎做?
list=[
{
"floorName": "3号学生宿舍楼",
"grades": [
{
"gradeName": "八年级",
"val": 0
},
{
"gradeName": "七年级",
"val": 0
},
{
"gradeName": "九年级",
"val": 0
}
]
},
{
"floorName": "2号学生宿舍楼",
"grades": [
{
"gradeName": "八年级",
"val": 0
},
{
"gradeName": "七年级",
"val": 0
},
{
"gradeName": "九年级",
"val": 0
}
]
},
{
"floorName": "1号学生宿舍楼",
"grades": [
{
"gradeName": "八年级",
"val": 0
},
{
"gradeName": "七年级",
"val": 0
},
{
"gradeName": "九年级",
"val": 0
}
]
}
],
循环压入一个数组中,再给series赋值给这个数组变量名称:
var series=[];
for(let i = 0; i < list[0].grades.length; i++){
series.push({
type:"bar",
data: (function () {
let arr = [];
list.forEach((ele) => {
if (ele.grades.length > 0) {
arr.push(ele.grades[i].val);
}
});
return arr;
})(),
name: (function () {
let str = "";
list.forEach((ele) => {
if (ele.grades.length > 0) {
str = ele.grades[i].gradeName;
}
});
return str;
})(),
})
}
//配置
series:series
在写的过程中,可能会遇到这样的问题,Cannot read properties of undefined (reading 'FlorGradeDrom')
这是因为this指向的是实例,相当于父级,指向不到子级中。所以需要一个变量_this存储this的指向
又或者使用箭头函数,因为箭头函数中的this是指向当前作用域,所以不用再let _this = this