如何在打字稿中显示随机数组位置?

时间:2019-04-19 03:35:24

标签: angular typescript api

我创建了一个捕获数组并选择随机位置的方法。我想显示一个或多个随机位置。我使用* 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>

1 个答案:

答案 0 :(得分: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)
}

谢谢!