I've got a loop in console that prints always start, this is my typescript code. I've got an array of 96 random numbers and every number represent a test, in this code there is only one example but at the end I will have a big switch case with every number. In this application I will do many cognitive test and I need at least two timer for everyone.
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-arrows-test-real',
templateUrl: './arrows-test-real.component.html',
styleUrls: ['./arrows-test-real.component.scss']
})
export class ArrowsTestRealComponent implements OnInit {
a = [];
plus: boolean;
counterPlus!: number;
button: boolean;
answer!: number;
userAnswer!: string;
counterAnswer!: number;
cue1: boolean;
cue2: boolean;
constructor() {
this.cue1 = false;
this.cue2 = false;
this.answer = 1.7;
this.plus = true;
this.button = false;
for (let i = 0; i < 96; i++) {
// @ts-ignore
this.a[i] = i;
}
console.log(this.a);
this.shuffle(this.a);
console.log(this.a);
}
ngOnInit(): void {
while (this.a.length !== 0){
console.log(this.a[0]);
const r = this.getRandomTime(0.4, 1.6) + 1;
if (this.a[0] === 20){
this.startTimerCongruentLeftUp(r);
}else {
console.log(this.a[0]);
this.a.splice(0, 1);
}
}
}
// tslint:disable-next-line:typedef
getRandomInt(min: number, max: number) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// tslint:disable-next-line:typedef
shuffle(array: number[]) {
// tslint:disable-next-line:one-variable-per-declaration
let currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
// tslint:disable-next-line:typedef
getRandomTime(min: number, max: number) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// tslint:disable-next-line:typedef
rightButton(){
this.counterAnswer = -1;
this.userAnswer = 'right';
}
// tslint:disable-next-line:typedef
leftButton(){
this.counterAnswer = -1;
this.userAnswer = 'left';
}
// tslint:disable-next-line:typedef
startTimerCongruentLeftUp(seconds: number) {
console.log('start');
let plus = seconds;
const interval = setInterval(() => {
console.log(plus);
// @ts-ignore
plus = plus - 0.1;
// @ts-ignore
if (plus < 0 ) {
clearInterval(interval);
this.startTimerAnswerCongruentLeftUp(this.answer);
}
}, 100);
}
// tslint:disable-next-line:typedef
startTimerAnswerCongruentLeftUp(seconds: number) {
this.counterAnswer = seconds;
const img = document.getElementById('arrow') as HTMLImageElement;
img.src = 'assets/images/congruentLeft.png';
const congruent = 'left';
this.button = true;
const interval = setInterval(() => {
console.log(this.counterAnswer);
// @ts-ignore
this.counterAnswer = this.counterAnswer - 0.1;
// @ts-ignore
if (this.counterAnswer < 0 ) {
clearInterval(interval);
// tslint:disable-next-line:no-shadowed-variable
if (this.userAnswer === congruent){
alert('right answer');
}else {
alert('wrong answer');
}
// tslint:disable-next-line:no-shadowed-variable
const img = document.getElementById('arrow') as HTMLImageElement;
img.src = '';
this.button = false;
this.a.splice(0, 1);
}
}, 100);
}
}
question from:
https://stackoverflow.com/questions/65911312/loop-in-while-angular 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…