前言 上午处理个需求需要从一个总数组中随机取出不同的元素。共使用两个方法。第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object。 当然简单数据类型应该没有这个问题。第二种是使用洗牌算法,亲测有效。 一、 ...
前言
上午处理个需求需要从一个总数组中随机取出不同的元素。共使用两个方法。第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object。 当然简单数据类型应该没有这个问题。第二种是使用洗牌算法,亲测有效。
一、常规算法
/** 从数组中随机抽取数据 2016-09-09 **/ function getArrItem(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.splice(arrIndex, 1); } else { break; } } return return_array; }
原标题:js从数组中随机取出不同的元素
关键词:JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。