我必须从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 }
该功能再次运行两次,但不是从头开始运行,因为我们没有在控制台中受到限制,即“一次不应调用”两次。
我在哪里犯错?