近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现。主要是运用到了Math对象的random方法,和Array的splice方法。
思路是先新建一个数组,存放所有的列表,然后算出随机数,从数组中取出这个随机索引对应的值,然后组成一个随机数组。
源代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
<title>从一个数组中随机取数</title>
<meta name="author" content="rainna" />
<meta name="keywords" content="rainna's js lib" />
<meta name="description" content="js" />
</head> <body>
<script>
//count 数组的总长度 randomCount 随机显示的数量
var selRandomNum = function(count,randomCount){
var count = count || 10;
var randomCount = randomCount || 3; var totalArray = [],randomArray = [];
for(var i=0,l=count;i<l;i++){
totalArray.push(i);
}
for(var i=0,l=randomCount;i<l;i++){
var randomIndex = Math.floor(Math.random()*totalArray.length);
var selectIndex = totalArray.splice(randomIndex,1)[0];
randomArray.push(selectIndex);
}
console.log(totalArray + '-----' + randomArray);
} selRandomNum();
</script>
</body>
</html>