js获取数组任意个不重复的随机数组元素 原创
js获取数组任意个不重复的随机数组元素 原创
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下://从一个给定的数组arr中,随机返回num个不重复项functiongetArrayItems(arr,num){//新...

复制代码 代码如下:

<script language="javascript">

//从一个给定的数组arr中,随机返回num个不重复项

function getArrayItems(arr, num) {

//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;

var temp_array = new Array();

for (var index in arr) {

temp_array.push(arr[index]);

}

//取出的数值项,保存在此数组

var return_array = new Array();

for (var i = 0; i<num; i++) {

//判断如果数组还有可以取出的元素,以防下标越界

if (temp_array.length>0) {

//在数组中产生一个随机索引

var arrIndex = Math.floor(Math.random()*temp_array.length);

//将此随机索引的对应的数组元素值复制出来

return_array[i] = temp_array[arrIndex];

//然后删掉此索引的数组元素,这时候temp_array变为新的数组

temp_array.splice(arrIndex, 1);

} else {

//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.

break;

}

}

return return_array;

}

//测试

var my_array = new Array();

for (i = 0; i < 20; i++)

{

my_array[i] = "Num:"+i;

}

my_array = getArrayItems(my_array,5);

for (i = 0; i < my_array.length; i++)

{

alert(my_array[i]);

}

</script>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类