(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); // ["趙本山", "王俊凱", "蔡徐坤", "彭于晏", "周杰倫", "劉德華", "鹿晗"]
(1)用內置對象Math.floor取整,Math.random隨機數,*num放大倍數
(2)indexOf(element查找元素, position開始查找位置),存在返回索引值/不存在返回值-1
(3)push(element追加元素)dom
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)交換元素code
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));