javascript 随机抽取数组中一值

从数组 m 中随机取出 n 个值,看代码:

 代码如下 复制代码

var m = [1,2,3,4,5,6,7,8,9,'a','b','c','d','e','#'];

function randArray(m, len) {
    m.sort(function () {
        return Math.random() - 0.5;
    });
    return m.slice(0, len);
}

console.log(randArray(m, 4));

从数组 m 中随机取出 n 个值,看代码:

 代码如下 复制代码

var arr = [1,2,3,4,5,6,7,8,9,'php','js','shell','seo','linux','&','#'];

function getRand(arr, len) {
    //这儿用到了js的函数式写法
    arr.sort(function () {
        return Math.random()-0.5;
    });
    return arr.slice(0, len);
}
//在Chrome中的js控制台中显示
//console.log(getRand(arr, 4));
document.write('<pre>');
document.writeln('随即抽取的元素为:'+getRand(arr, 3));
document.writeln('随即抽取的元素为:'+getRand(arr, 3).join('_'));

注:
javascript中toString的用法 可以将数组、对象、函数、数字转换成字符串

从数组中随机取出多个不重复的项

 

 代码如下 复制代码

<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>

时间: 2024-10-06 01:03:14

javascript 随机抽取数组中一值的相关文章

javascript随机抽取0-100之间不重复的10个数_javascript技巧

目前只学会两种简单的方法,帮助大家实现随机抽取0-100之间不重复的10个数,具体内容如下 第一种利用数组长度可改写的特点 思路:可以从0到100的数用for循环出来放在一个数组中,然后将这100个数利用sort()随机打乱,然后通过将这个数组的length改写为10,便取到了10个不同的数. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

PHP 使用用户自定义的比较函数对数组中的值进行排序

原文:PHP 使用用户自定义的比较函数对数组中的值进行排序      usort     (PHP 4, PHP 5) usort -      使用用户自定义的比较函数对数组中的值进行排序        说明            bool usort        ( array &$array       , callable $cmp_function       )          本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序

js 取出json数组中的值

js 取出json数组中的值 <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>js 取出json数组中的值</title> </head> <body>

JavaScript几种数组去掉重复值的方法推荐_javascript技巧

数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复.主要是理清思路和考虑下性能.以下方法,网上基本都有,这里只是简单地总结一下. 思路: 1.遍历数组,一一比较,比较到相同的就删除后面的 2.遍历数组,一一比较,比较到相同的,跳过前面重复的,不相同的放入新数组 3.任取一个数组元素放入新数组,遍历剩下的数组元素任取一个,与新数组的元素一一比较,如果有不同的,放入新数组. 4.遍历数组,取一个元素,作为对象的属性,判断属性是否存在 1. 删除后面重复的: function ov1(arr)

php计算多维数组中所有值总和的方法

本文实例讲述了php计算多维数组中所有值总和的方法.分享给大家供大家参考.具体实现方法如下: php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和; 计算多维数组所有值的和就要自定义函数了; ? 1 2 3 4 5 6 7 8 9 10 function get_sum($array) { $num = 0; foreach($array as $k => $v) { if(is_array($v)) { $num += get_sum($v); } }

一个标签从标签数组中取值方法实现

问题描述 一个标签从标签数组中取值的两种方法实现.一种方法是按标签出次的次数取值按出现.String[]add={"北京","上海","四川","四川","北京","四川"};"地址":"四川";还有一个方法是按权重进行显示String[]add={"北京","上海","四川","

ios-请教:连接数组中所有值的方法

问题描述 请教:连接数组中所有值的方法 请教一下,有没有什么方法可以将数组中的所有对象连接起来?我需要在IOS6中实现这样的功能,谢谢指教,不胜感激. 解决方案 很简单的,用一句代码就可以实现: NSString *strg = [array componentsJoinedByString:@"" ""]; 解决方案二: 在NSArray有一个方法componentsJoinedByString,会返回一个NSString 看下面的例子,可以连接全部的数组值,然后

ios-两个数组从第一个数组中提取值

问题描述 两个数组从第一个数组中提取值 First_mutableArray 是 1,2,3,4,5,6Second_MutableArray 是 2,4,6,8,0,12 怎么样输出这样的格式: First_mutableArray 是 1,2,3,4,5,6,8,0,12 ? 解决方案 NSMutableOrderedSet *first = [NSMutableOrderedSet orderedSetWithObjects:@"1",@"2",@"

java-在DialogBox数组中获取值

问题描述 在DialogBox数组中获取值 在数组中获取选中项目的值,代码: final String items[] = {""Blue""Green""Orange""};final AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle(""Money Maker"");alert.setI