首页 > 解决方案 > 以角度随机化数组

问题描述

有没有办法在一段pipe时间内随机化数组值*ngFor?我发现有人使用ng-repeat,但我认为它适用于以前的版本(我使用的是 Angular 8.3)。

我找到了这个答案,但它使用的是 JS。如果可能的话,我只想使用 Angular 功能。

提前致谢。

标签: angular

解决方案


您可以使用您在 Typescript 上的帖子链接中的代码

shuffledArray:[]; 

shuffleArray(array) {
   var m = array.length, t, i;

   while (m) {    
    i = Math.floor(Math.random() * m--);
    t = array[m];
    array[m] = array[i];
    array[i] = t;
   }

  return array;
}

现在你可以在方法上调用这个 shuffleArray 方法,比如

ngOnInit(){
  this.shuffledArray = this.shuffleArray(array) // add your array as input
}

在您的 HTML 上,您可以循环

<div *ngFor="let item of shuffledArray">
{{item}}
</div>

推荐阅读