[原创]js获取数组任意个不重复的随机数组元素
作者:bea
代码如下: <script language="javascript"> //从一个给定的数组arr中,随机返回num个不重复项 function getArrayItems(arr, num) { //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); }
代码如下:
<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>
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- js replace() 文本替换你所不知的
- javascript 新闻标题静态分页代码 (无刷新)
- Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
- javascript中的undefined 与 null 的区别 补充篇
- javascript+iframe 实现无刷新载入整页的代码
- js select常用操作控制代码
- js实现的日期操作类DateTime函数代码
- js 翻转颜色实现代码
- javascript json2 使用方法
- jQuery 选择器理解
- jQuery 学习入门篇附实例代码
- Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
- Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
- javascript 二维数组的实现与应用
- JavaScript 中文转拼音实现代码 有些bug
- Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
- jQuery MD5加密实现代码
- javascript将ip地址第四段用星号代替的两种方法
- javascript和jquery分别实现的九九乘法表代码