題目一:
JavaScript 數組隨機不重復元素
實際應用可能需要從數組元素中隨機取出幾個元素,并且要保證這幾個元素不重復。
有些數組可能有重復的元素,那么可能需要首先去除這些重復的元素。
代碼與解析:
var theArray=[1,3,2,4,5,9,10,20,15];//聲明一個數組,將會從此數組取元素function done(num,arr){//此函數實現了取出指定個數不重復元素效果,第一個參數是要取的個數,第二個是數組對象var newArray=[];//聲明一個空數組,用來存放取出的元素。for(var index=0;index<num;index++){//取出指定個數的數組元素,這里采用for循環遍歷的方式。var n=Math.floor(Math.random()*theArray.length);//通過隨機數*數組的長度可以獲取隨機的數組索引,并將其存入變量n。newArray.push(theArray[n]);//將獲取的數組元素存入新的數組。theArray.splice(n,1);//刪除此索引位置的數組元素。}return newArray+"";//將數組轉換為字符串并返回。
}
console.log(done(2,theArray));
相關知識:
Math.floor()可以對一個數字進行下舍入操作。
返回值是小于等于參數,并與之最接近的整數。
Math.random方法可以生成一個隨機數。
返回的隨機數介于0-1之間。
特別說明:返回值不包括1,也就是返回值是大于等于0小于1。代碼實例如下:
let getRandomNum=(m,n)=>{return parseInt(Math.random()*(n-m)+m);
}
console.log(getRandomNum(20,50));
//結果為 47
JavaScript splice()此方法對數組具有"剪接"功能。
詳細見 splice方法。