JavaScript|数组乱序、数组去重

一、数组乱序

function shuffle(arr) { // 1.随机找一个元素与最后一个元素交换 // 2.随机找一个除最后一个元素的元素与最后一个元素交换 // 3.以此类推 let len = arr.length; while (len) { const randomIndex = Math.floor(Math.random() * len--); // 交换 let temp = arr[randomIndex]; arr[randomIndex] = arr[len]; arr[len] = temp; } }

二、数组去重 【JavaScript|数组乱序、数组去重】for循环去重
function removeDup(arr) { const result = []; const map = new Set(); // 1.遍历arr,存进hashMap,后续比较看是否存在 for (let i = 0; i < arr.length; i++) { // 2.不存在就push if (!map.has(arr[i])) { map.add(arr[i]); result.push(arr[i]); } // 3.存在就过 } return result; }

indexOf去重
// 利用数组indexOf去重 function removeDup2(arr) { const newArray = []; const n = arr.length; for (let i = 0; i < n; i++) { const current = arr[i]; // 不存在就添加到新数组 if (newArray.indexOf(current) === -1) { newArray.push(current); } }return newArray; }

    推荐阅读