使用Vue.js的方法内的For循环

时间:2019-09-11 14:55:02

标签: javascript for-loop vue.js vuejs2

我在Vuejs中有一个方法,可以根据选择来更新一组变量。

methods: {
  updateChart(){
    this.chart1.series[1].data = [this.$store.state.selectedcities[0].value[1]];
    this.chart1.series[2].data = [this.$store.state.selectedcities[0].value[2]];
    this.chart1.series[3].data = [this.$store.state.selectedcities[0].value[3]];
    this.chart1.series[5].data = [this.$store.state.selectedcities[0].value[5]];
    this.chart1.series[7].data = [this.$store.state.selectedcities[0].value[7]];
    this.chart1.series[8].data = [this.$store.state.selectedcities[0].value[8]];
    this.chart1.series[9].data = [this.$store.state.selectedcities[0].value[9]];
    this.chart1.series[11].data = [this.$store.state.selectedcities[0].value[11]];
    this.chart1.series[12].data = [this.$store.state.selectedcities[0].value[12]];
    this.chart1.series[13].data = [this.$store.state.selectedcities[0].value[13]];
    this.chart1.series[14].data = [this.$store.state.selectedcities[0].value[14]];
    this.chart1.series[16].data = [this.$store.state.selectedcities[0].value[16]];
    this.chart1.series[17].data = [this.$store.state.selectedcities[0].value[17]];
    this.chart1.series[18].data = [this.$store.state.selectedcities[0].value[18]];
    this.chart1.series[20].data = [this.$store.state.selectedcities[0].value[20]];
    this.chart1.series[21].data = [this.$store.state.selectedcities[0].value[21]];
    this.chart1.series[22].data = [this.$store.state.selectedcities[0].value[22]];
}

问题在于它看起来很冗长,所以我想知道是否可以在其中运行一个for循环来遍历这些数字的for循环。问题是数字没有顺序。我的意思是该系列的运行方式为{1,2,3,5,7,8,9,11,12,13,14,16,17,18,20,21,22}

最后,我要搜索的内容如下所示:

methods:{
 updateChart(){
  var n = {1,2,3,5,7,8,9,11,12,13,14,16,17,18,20,21,22}
    for(i in n){
          this.chart1.series[i].data = [this.$store.state.selectedcities[0].value[i]];
            }
          }
        }

我不太确定该怎么做,因为我对javascript很陌生。

编辑:

是否可以使用此方法添加嵌套的foreach? 例如:

var k = [1,3,6]
var n = [1,2,3,5,7,8,9,11,12,13,14,16,17,18,20,21,22]
    n.forEach(i=>{
          this.chart[k].series[i].data = [this.$store.state.selectedcities[k].value[i]];
            })

请注意,k已添加到公式中,并且n是k的子级。因此,对于每个k,它应该运行n的序列。

2 个答案:

答案 0 :(得分:2)

n应该是一个数组,并使用 forEach 方法遍历它:

 var n = [1,2,3,5,7,8,9,11,12,13,14,16,17,18,20,21,22]
    n.forEach(i=>{
          this.chart1.series[i].data = [this.$store.state.selectedcities[0].value[i]];
            })

ُ编辑

var m = [1,3,6]
 m.forEach(k=>{
     n.forEach(i=>{
          this.chart[k].series[i].data = 
        [this.$store.state.selectedcities[k].value[i]];
            })

})

答案 1 :(得分:2)

您可以使用foreach

updateChart() {
    var n = [1,2,3,5,7,8,9,11,12,13,14,16,17,18,20,21,22];

    n.forEach(number => {
        this.chart1.series[number].data = [this.$store.state.selectedcities[0].value[number]];
    });
}