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