1

我创建了一个捕获数组并选择随机位置的方法。我想显示一个或多个随机位置。我使用 *ngFor 指令来显示我的数组的所有位置,但我不知道如何显示这个随机位置;

listComics() {
    this.comicsService.getComics().subscribe(
      comicsList => {
        this.comics = comicsList.data.results;
        this.rareComics = comicsList.data.results[Math.floor(Math.random() * this.comics.length)]
        console.log(this.comics);
    });
  }

这就是显示数组的方式


<div class="col-md-3" *ngFor="let comic of comics">
      <div class="col">
        <img [src]="comic.thumbnail.path + '/portrait_uncanny.' + comic.thumbnail.extension" id="img"
          (click)="onSelect(comic)">
      </div>
      <div class="col">
        <h5 class="title">{{comic.title}}</h5>
      </div>
    </div>
4

1 回答 1

0

这是一个服务于您的目的的小功能

function listRandomComics(comics){
    var radomLength = Math.floor(Math.random()*comics.length)
    var randomArray = []
    for(var i=0; i<=radomLength; i++ ){
        var randomIndex = Math.floor(Math.random()*comics.length)
        randomArray.push(comics[randomIndex])
        comics.splice(randomIndex, 1)
    }
    console.log(randomArray)
}

在 ES6 中

listRandomComics(){
    let arr = [...this.comics]
    let randomLength = Math.floor(Math.random()*arr.length)
    let randomArray = []
    while(randomLength){
        let randomIndex = Math.floor(Math.random()*arr.length)
        randomArray.push(arr[randomIndex])
        arr.splice(randomIndex, 1)
        randomLength--
    }
    console.log(randomArray)
}

谢谢!

于 2019-04-19T04:31:07.200 回答