vue data中变量拼接的问题

        data{
            return{
                successData1: [],
                failData1: [],
                dataTime1: {},

                successData2: [],
                failData2: [],
                dataTime2: {},

                successData3: [],
                failData3: [],
                dataTime3: {},

                successData4: [],
                failData4: [],
                dataTime4: {}
            }
       }
                        let dataModel = (id, i) => {
                            let j=i+1
                            echarts.init(document.getElementById(id + i)).setOption({
                                tooltip: {
                                    trigger: 'axis',
                                    axisPointer: {            
                                        type: 'shadow'     
                                    }
                                },
                                legend: {
                                    data: ['成功数', '失败数']
                                },
                                grid: {
                                    left: '3%',
                                    right: '4%',
                                    bottom: '3%',
                                    containLabel: true
                                },
                                yAxis: {
                                    type: 'value'
                                },
                                xAxis: {
                                    type: 'category',
                                    data: this.dataTime+j[i]   <----这个如何拼接
                                },
                                series: [
                                    {
                                        name: '成功数',
                                        type: 'bar',
                                        stack: '总量',
                                        label: {
                                            normal: {
                                                show: true,
                                                position: 'insideRight'
                                            }
                                        },
                                        data:this.'successData'+j[i] <----这个如何拼接
                                    },
                                    {
                                        name: '失败数',
                                        type: 'bar',
                                        stack: '总量',
                                        label: {
                                            normal: {
                                                show: true,
                                                position: 'insideRight'
                                            }
                                        },
                                        data: `this.failData${j}[${i}]` <----这个如何拼接
                                    }
                                ]
                            });
                        }
                        
              
             for (let i = 0; i < this.channelInfoSave.length; i++) {
                  dataModel ('XXXid',i)
             }

由于有好几个类似的图,我就独立出来个方法,但是这个变量怎么拼呢?我上边写的尝试都不正确

阅读 5.7k
3 个回答
data: this['successData'+j][i]

使用模板字符串

data: this[`successData${j}`][i]

既然有类似的图,你何不把这些写成组件呢 参考

这样拼接:

`${this.dataTime[j][i]}`

建议好好了解js基础和es6的模板字符串。

希望我的回答可以帮助到你,谢谢。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题