数组
2023-02-27 14:44:36
数组洗牌
shuffleArray.js
function shuffleArray(arr) {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1))
;[arr[i], arr[j]] = [arr[j], arr[i]]
}
return arr
}
数组去重
uniqueBy.ts
function uniqueBy<T, K extends keyof T>(array: T[], getKey?: K | ((item: T) => T[K])) {
const result: T[] = []
const keys = new Set()
array.forEach(item => {
const key = getKey ? (typeof getKey === 'function' ? getKey(item) : item[getKey]) : item
if (!keys.has(key)) {
keys.add(key)
result.push(item)
}
})
return result
}