项目需求,需要创建21个对象来存放echarts图表,并开启定时器来变更21个图表的数据,用eval函数来创建动态变量接受对象,一次循环搞定
首先,eval()函数如何使用:
eval() 函数计算 JavaScript 字符串,并将其作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是 Javascript 语句,eval() 将执行 Javascript 语句。
for (var i = 0; i < 21; i++){
// 定义id,这个id是我的21个div的id
var id = "temperature"+(i+1);
// 使用eval函数,将函数内的字符串当做js语句执行
eval("var myChart"+i +"= echarts.init(document.getElementById(id));");
var option = {
//。。 图表配置,不重要
};
// 执行图表
eval("myChart"+i).setOption(option);
// 最后一次 开启定时器
if (i == 20){
var interval = setInterval(a(),5000);
function a(){
for (var i = 0; i < 21; i++){
var random = +(Math.random() * 60).toFixed(2);
eval("myChart"+i).setOption({
series: [
{
data: [
{
value: random
}
]
},
{
data: [
{
value: random
}
]
}
]
});
}
return a;
}
}
}