我想将一个有偶数个元素的数组两两随机分组,比如
[1,2,3,4,5,6,7,8]
输出可能有一个结果是:
[[1,3],[2,5],[4,8],[6,7]]
自己尝试写了一下代码,如下:
function arrSlice(arr) {
if(arr.length % 2 !== 0) return 0;
var
newArr = [],
//临时辅助数组
tmpArr = [];
for(let i=0;i<arr.length;i++) {
if(!tmpArr.includes(arr[i])) {
var rndIndex;
do {
rndIndex = Math.floor(Math.random() * (arr.length - (i + 1))) + (i + 1);
} while(tmpArr.includes(arr[rndIndex]));
newArr.push([arr[i],arr[rndIndex]]);
tmpArr.push(arr[i]);
tmpArr.push(arr[rndIndex]);
}
}
return newArr;
}
var arr = [1,2,3,4,5,6,7,8]
console.log(arrSlice(arr));
自己是一个JS新手,感觉写出来的有点生硬,不知道有没有更好的一个实现,向各位大牛请教下,谢谢
相关分类