Как обновлять существующий компонент каждый раз, когда происходит изменение в Angular? - PullRequest
0 голосов
/ 07 мая 2020

, поэтому я пытаюсь создать веб-страницу визуализатора алгоритма сортировки, используя Angular, и в настоящее время столкнулся с проблемой. В настоящее время я занимаюсь пузырьковой сортировкой и борюсь с обновлением массива, который отображается на странице при инициализации каждый раз, когда во время пузырьковой сортировки происходит свопинг. В настоящее время я пытаюсь использовать задержку, чтобы каждый раз, когда в сортировке происходит своп, мы ждем определенной задержки, но это все равно не выполняется. Я все еще новичок в Angular, поэтому пытаюсь во всем разобраться, как go. Вот как у меня настроен код:

Text] ([![TypeScript file] 1 )

Text] ([![] 2 )

Не стесняйтесь оставлять все, что у вас есть, спасибо!

1 Ответ

0 голосов
/ 07 мая 2020

Для меня более простой способ - использовать таймер от 'rx js'. Но сначала нам нужно изменить l oop. Мы не используем for else while.

Шаг за шагом. представьте себе простой l oop

for(k=0;k<10;k++)
{
   this.result=k;
}

Это заставляет показывать только результат 10

мы конвертируем во время

let k=0
while(k<10)
{
   this.result=k
}

Снова показываем только окончательный результат 10

Использование таймера

let k=0
timer(0,500).pipe(takeWhile(()=>k<10)).subscribe(()=>{
  while (k<10)
  {
    this.result=k
    k++;
    break;
  }
})

Ну, проблема в том, что у нас есть два l oop, и мы хотим использовать условие (В примере я поставил простое условие )

let i = 0;
let j = 0;
timer(0, 500)
  .pipe(takeWhile(() => i < this.array.length))
  .subscribe(() => {
    while (i < this.array.length) {
      let change = false;
      while (j < this.array.length) {
        if (j == 2) { //<--yes is a simple condition
          change = true;
          this.result = i + "," + j;
          j++
          break;
        }
        j++;
      }
      if (change) break;
      if (j == this.array.length){
          i++;
          j = 0;
      }
    }
  });

Просто измените условие в соответствии с вашими встречами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...