数组去重
数组去重
// 第一种 filter + indexOf
function unique(arr = []) {
return arr.filter(function (item, index, array) {
// 当前值的下标与indexOf后的下表不相同,代表存在不止1个
return array.indexOf(item) === index
})
}
// 第一种 ES6 Set
function unique(arr) {
return [...new Set(arr)]
}数组乱序
// 第一种,每个位置乱序的概率不同
function mixArr(arr = []) {
return arr.sort(() => {
return Math.random() - 0.5
})
}
// 第二种,shuffle 洗牌算法
function shuffle (arr = []) {
let m = arr.length
while(m > 1) {
let index = parseInt(Math.random() * m--);
[arr[index], arr[m]] = [arr[m], arr[index]]
// 每次取最后一个数,与剩下的数中的随机一个值交换位置
}
return arr
}数组扁平化
数组最大值
Last updated