Javascript – Ein Array übernimmt zufällige Elemente aus einem anderen Array
PHP中文网2017-05-19 10:31:39
0
7
703
Es gibt ein Array a = [4,19,23,44,56,1], erstellen Sie ein neues Array b, und b wählt zufällig jeweils ein Element aus a aus, bis es erschöpft ist. In JavaScript implementiert
var a=[4,19,23,44,56,1];
var b=[];
var c=[0,0,0,0,0,0];
var aLen = a.length;
while (c.indexOf(0)!=-1){
var randomNum = Math.floor(Math.random()*aLen);
if (c[randomNum] == 0){
b.push(a[randomNum]);
c[randomNum]=1
}
}
console.log(b);
var a=[4,19,23,44,56,1];
function randomSelect(str){
var leng= a.length;
var b=[];
while(leng!=0){
b.push(a.splice(Math.random()*leng,1).join())
leng--;
}
return b;
}
console.log(randomSelect(a));
可以用伪随机对a进行洗牌,取任意两个位置的数字进行交换,如此进行n次达到洗牌效果,然后赋值给b。
或者直接按照步骤来,如果不考虑代码效率的话,lodash库提供的数组操作可以使代码更优雅:
想到个更好的
伪随机方法,直接随机排序,代码更简洁,运行效率高:实现如下:
我的思路是遍历这个数组,获取这个数组中的随机元素,从a数组中删除同时push进b数组,然后类推下去
说下四楼不写了 就是从数组一里每次随机一个 随机出来之后从数组里剔除 继续随机 吧剔除的压入新数组里就ok了