下面是Javascript实现数组中内容随机输出的完整攻略:
1. 生成随机数
Javascript标准库中有一个Math对象,可以使用Math.random()方法生成[0,1)之间的随机数。那么我们只需要将这个数乘以数组的长度,然后向下取整,就可以得到一个数组下标的随机数。
var arr = ['apple', 'banana', 'orange', 'grape'];
var randomIndex = Math.floor(Math.random() * arr.length);
console.log(arr[randomIndex]);
2. 数组洗牌
如果我们希望每次随机输出的内容都不一样,我们可以将数组中的元素顺序打乱。这可以使用Javascript的sort()方法和Math.random()方法一起实现。具体步骤如下:
- 创建排序函数,该函数返回一个负数、正数或零。这个函数会将传入的两个参数随机排列,这样就可以将整个数组随机排列。
function shuffle() {
return Math.random() -0.5;
}
var arr = ['apple', 'banana', 'orange', 'grape'];
arr.sort(shuffle);
console.log(arr);
上面代码中,我们创建了一个排序函数shuffle,返回值为Math.random()-0.5。这个函数会随机返回负数、零或正数。当出现负数时,sort()方法就会将第一个参数排在第二个参数的前面,否则就排在后面。
- 对数组调用sort()方法,传入shuffle函数。
此时,数组中的元素为随机顺序。
var arr = ['apple', 'banana', 'orange', 'grape'];
arr.sort(shuffle);
console.log(arr);
示例说明
比如现在有一个数组,里面装着10首歌曲名字,我们想要将它们打乱顺序播放,那么我们可以使用两种方式:
- 使用第一种方式,在播放每首歌曲时,使用上文提到的方法随机生成一个下标,然后以此下标获取到该首歌曲的名字。
var songs = ['song1', 'song2', 'song3', 'song4', 'song5', 'song6', 'song7', 'song8', 'song9', 'song10'];
function playRandomSong() {
var randomIndex = Math.floor(Math.random() * songs.length);
console.log('Now playing: ' + songs[randomIndex]);
}
- 使用第二种方式,对歌曲名数组进行乱序处理,然后按照处理后的顺序进行播放。
var songs = ['song1', 'song2', 'song3', 'song4', 'song5', 'song6', 'song7', 'song8', 'song9', 'song10'];
songs.sort(function() {
return Math.random() - 0.5;
});
for (var i = 0; i < songs.length; i++) {
console.log('Now playing: ' + songs[i]);
}
使用上面的代码,不仅可以达到打乱顺序的目的,而且可以保证每首歌曲都会被播放到。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现数组中的内容随机输出 - Python技术站