(一)陣列的首尾兩個元素互換

步驟構思:
(1)用內置物件splice()進行元素更換
(2)splice(position索引位置,unit洗掉單位數,element增加元素)
var arr = ["鹿晗", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "趙本山"];
function exchange(arr) {
var temp = arr[0];
arr.splice(0, 1, arr[arr.length - 1]);
arr.splice(arr.length - 1, 1, temp);
return arr;
}
var result = exchange(arr);
console.log(result); // ["趙本山", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "鹿晗"]
(二)從名單中隨機抽取4個人(不重復)

步驟構思:
(1)用內置物件Math.floor取整,Math.random亂數,*num放大倍數
(2)indexOf(element查找元素, position開始查找位置),存在回傳索引值/不存在回傳值-1
(3)push(element追加元素)
var arrTwo = ["鹿晗", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "趙本山"];
var newArr = [];
function draw() {
while (newArr.length < 4) { //創建的空陣列長度設定回圈體
var num = Math.floor(Math.random() * 7); // 隨機生成索引號0-7,若超過8則undefined;變數num儲存作為arr陣列的索引值
if (newArr.indexOf(arrTwo[num]) === -1) { //判斷隨機元素在newArr陣列中是否存在,若不存在indexOf()回傳值為-1
newArr.push(arrTwo[num]); // 將不重復元素push到newArr陣列
}
}
return newArr;
}
console.log(draw());
(三)名單隨機排序(不重復)

步驟構思:
(1)獲取陣列長度
(2)遍歷隨機索引
(3)交換元素
法一
var arrThr = ["鹿晗", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "趙本山"];
function shuffle(arrThr) {
var len = arrThr.length; // len = 7
for (var i = 0; i < len - 1; i++) { // i < 6
var index = parseInt(Math.random() * (len - i)); // * 6--
var temp = arrThr[index]; // 暫存temp進行交換元素
arrThr[index] = arrThr[len - i - 1]; // arr[6]
arrThr[len - i - 1] = temp; // arr[5]
}
return arrThr;
}
console.log(shuffle(arrThr));
法二
var arrThr = ["鹿晗", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "趙本山"];
function shuffle(arrThr) {
let len = arrThr.length; // len = 7
while (len) {
let j = Math.floor(Math.random() * len--); // *6 --
[arrThr[j], arrThr[len]] = [arrThr[len], arrThr[j]];
}
return arrThr;
}
console.log(shuffle(arrThr));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/160343.html
標籤:JavaScript
上一篇:JavaScript篩選陣列
下一篇:JavaScript陣列去重
