vue返回仍然继续执行脚本

时间:2019-08-27 16:16:03

标签: vue.js

我必须从api生成动态选择选项。 Api发送一些包含x个数组的数据。

1个数组是1个选择

如果数组1包含6个数据,例如

['example','example','example','test','test','next']

我发送仅选择3个选项,例如示例,测试和下一个 如果用户选择“示例”,则下一个数组将仅显示索引为0,1,2的值;如果用户选择“测试下一个数组”,则仅显示3,4,等等。

所以最后他只能选择1个值甚至0,这取决于先前的选择和数组数据,因为数组看起来像这样:

['example','example',null, null,'test','next']

一切正常,期望空步。 因此,如果我们使用null值,则跳过该数组,然后选择下一个。

        console.log('entry')
        const newArray =[];
        const arr = this.array[this.counter];
        if(this.counter>0 && this.letRerun == 0){
            this.beforeSelect = this.array[this.counter-1];
            const letArray =  this.array[this.counter-1];
            const keysPass=[]; 
            letArray.map((el, index) => {(el===this.selectedValue) && (this.selectKey.includes(index)) ? keysPass.push(index) : false });
            this.selectKey = keysPass;
             arr.map((el, index) => { (!newArray.includes(el)) && (keysPass.includes(index)) ? newArray.push(el) : false  });
        }
         else if(this.counter>0 && this.letRerun == 1){
            const keysPass = this.selectKey; 
            console.log('keys ' +keysPass)
            arr.map((el, index) => { (!newArray.includes(el)) && (keysPass.includes(index))  ? newArray.push(el) : false  });
            ( (newArray.length === 1) && (newArray[0] === null)  ? console.log('rerun') :  this.letRerun = 0);
            if(this.letRerun == 0){
                console.log('letrun')
                return newArray
            } 
            console.log('that should go'+newArray)
         }
        else if(this.counter==0){
            arr.map((el) => {(!newArray.includes(el)) ? newArray.push(el) : false  });
            return newArray.splice(1);
        }
        ( (newArray.length === 1) && (newArray[0] === null)  ? this.rerun() :  this.letRerun = 0);
        console.log('that one schould not be called'+newArray)
        return newArray;
    },
    rerun(){
        this.letRerun = 1;
        this.counter++;
        this.loadAgain();
    },

如您所见,每次主函数启动时,我都会调用entry,当我发现空数组时,我会在控制台中输入entry,因为我们再次运行函数但计数器为1。

我得到了什么:

  

输入app.js:1920条目app.js:1937键3 app.js:1941重新运行   应该去的app.js:1948 app.js:1920输入app.js:1937键3   app.js:1944 letrun app.js:1906 [“ Ja”, ob :观察者] app.js:1957   不应被称为app.js:1906 [null, ob :观察者]   app.js:1957,不应将其称为app.js:1906 [null, ob :   观察员]

函数应在此处停止:

  

app.js:1920条目app.js:1937键3 app.js:1941重新运行app.js:1948   应该去app.js:1920条目app.js:1937键3 app.js:1944 letrun   app.js:1906 [“ Ja”, ob :观察者]

太过分了     if(this.letRerun == 0){                     console.log('letrun')                     返回newArray                 }

该功能再次运行两次,但不是从头开始运行,因为我们没有在控制台中受到限制,即“一次不应调用”两次。

我在哪里犯错?

0 个答案:

没有答案