js实现从数组里随机获取元素

 这篇文章主要介绍了js实现从数组里随机获取元素的方法,以及个人封装的js代码分享,十分的实用,这里推荐给小伙伴们

 
 

基础知识:

  复制数组:

  (1)循环遍历复制(不推荐)

 

代码如下:

var arry = [1,5,9,7],
new_arry = [],
n = 0,
len = arry.length;
for(;n<len;n++){
new_arry.push(arry[n]);
}

 

  (2)concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

 

代码如下:

var arry = [1,5,9,7],
new_arry = arry.concat();
console.log(new_arry);

 

  (3)slice() 方法可从已有的数组中返回选定的元素

 

代码如下:

var arry = [1,5,9,7],
new_arry = arry.slice(0);
console.log(new_arry);

 

  随机数:

Math.random()
Math.random(),返回0到1的随机数,如:0.4261967441998422

个人封装函数:

 

代码如下:

function getRandom(opt) {
var old_arry = opt.arry,
range = opt.range;
//防止超过数组的长度
range = range > old_arry.length?old_arry.length:range;
var newArray = [].concat(old_arry), //拷贝原数组进行操作就不会破坏原数组
valArray = [];
for (var n = 0; n < range; n++) {
var r = Math.floor(Math.random() * (newArray.length));
valArray.push(newArray[r]);
//在原数组删掉,然后在下轮循环中就可以避免重复获取
newArray.splice(r, 1);
}
return valArray;
}
var new_val = getRandom({'arry':[1,6,8,0,3],'range':3});
console.log(new_val);

 

是不是很好用呢,非常实用的代码,这里是从本人项目中分离出来分享给大家,希望对大家有所帮助。

时间: 2024-12-31 22:36:30

js实现从数组里随机获取元素的相关文章

js实现从数组里随机获取元素_javascript技巧

基础知识: 复制数组: (1)循环遍历复制(不推荐) 复制代码 代码如下: var arry = [1,5,9,7],     new_arry = [],     n = 0,     len = arry.length; for(;n<len;n++){     new_arry.push(arry[n]); } (2)concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 复制代码 代码如下: var arry = [1,5,9,7],  

js中利用tagname和id获取元素的方法_javascript技巧

本文分享了js中利用tagname和id获取元素的3种方法,供大家参考,具体内容如下 方法一:整体法,先获取所有的元素,再通过ai+-b的方法来算出需要的元素 方法二:数组法,在全局环境下建立空数组,遇到需要循环的结构时,在循环中获取元素,并放入数组 方法三:函数法,遇到相同的几组元素时,只操作一组元素,并用函数传参来实现所有的效果 具体代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta cha

abs-关于求一维数组里所有两元素之和的最小绝对值,求指点

问题描述 关于求一维数组里所有两元素之和的最小绝对值,求指点 题目详情给你一个数组A[n]请你计算出ans=min(|A[i]+A[j]|)(0<=ij例如:A={1, 4, -3},则:|A[0] + A[0]| = |1 + 1| = 2.|A[0] + A[1]| = |1 + 4| = 5.|A[0] + A[2]| = |1 + (-3)| = 2.|A[1] + A[1]| = |4 + 4| = 8.|A[1] + A[2]| = |4 + (-3)| = 1.|A[2] + A[

js querySelector和getElementById通过id获取元素的区别_javascript技巧

这是sina同事xiaoniu发现的,如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <div id="02E503E2A1C011CFC85B7B701A0677EC0900000000000001"></div> <script> var str = '02E5

JS 在指定数组中随机取出N个不重复的数据_javascript技巧

复制代码 代码如下: <script language="javascript">//从一个给定的数组arr中,随机返回num个不重复项function getArrayItems(arr, num) {    //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;    var temp_array = new Array();    for (var index in arr) {        temp_array.push(arr[index]

JS 在指定数组中随机取出N个不重复的数据

<script language="javascript">//从一个给定的数组arr中,随机返回num个不重复项function getArrayItems(arr, num) {    //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;    var temp_array = new Array();    for (var index in arr) {        temp_array.push(arr[index]);    }    

JS从数组中随机取出几个数组元素的方法_javascript技巧

JS如何从一个数组中随机取出一个元素或者几个元素. 假如数组为 var items = ['1','2','4','5','6','7','8','9','10']; 1.从数组items中随机取出一个元素 var item = items[Math.floor(Math.random()*items.length)]; 2.从前面的一篇随机数组中随机取几个元素 function getRandomArrayElements(arr, count) { var shuffled = arr.sl

js获取数组的最后一个元素

 (1)js内置pop方法 pop() 方法用于删除并返回数组的最后一个元素,注意这里在获取了数组的最后一个元素的同时也将原数组的最后一个元素给删除了.如果数组已经为空,则该方法不改变数组,并返回 undefined 值,如: 1 2 3 4 <script> var args=new Array(['www'],['jb51'],['net']); alert(args.pop());//net </script> (2)根据length方法获取,例如: 1 2 3 4 <

js获取对象、数组的实际长度,元素实际个数的实现代码_javascript技巧

js获取对象.数组的实际长度,元素实际个数的实现代码 /*获取对象.数组的长度.元素个数 *@param obj 要计算长度的元素,可以为object.array.string */ function count(obj){ var objType = typeof obj; if(objType == "string"){ return obj.length; }else if(objType == "object"){ var objLen = 0; for(v