# 数组乱序
```
const shuffleArray = (arr) => arr.sort(() =>Math.random() - 0.5)
// 测试
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(shuffleArray(arr))
```
# 复制到剪贴板
```
const copyToClipboard = (text) => navigator.clipboard?.writeText && navigator.clipboard.writeText(text)
// 测试
copyToClipboard("Hello World!")
```
# 获取鼠标选中的文本
```
let text = document.selection.createRange().text; // IE9以下使用
let text = window.getSelection().toString(); // 其他浏览器
```
# 取消处于选中状态的文字
```
document.selection.empty(); // IE9以下使用
window.getSelection().removeAllRanges(); // 其他浏览器
```
# 数组去重
```
const getUnique = (arr) => [...new Set(arr)]
// 测试
const arr = [1, 1, 2, 3, 3, 4, 4, 5, 5];
console.log(getUnique(arr))
```
# 检测黑暗模式
```
const isDarkMode = () =>
window.matchMedia &&
window.matchMedia("(prefers-color-scheme: dark)").matches
// 测试
console.log(isDarkMode())
```
# 滚动到顶部 滚动到底部
"smooth "来实现平滑的滚动动画,`block:start` -- 顶部,`block:end` -- 底部。
```
const scrollToTop = (element) => element.scrollIntoView({ behavior: "smooth", block: "start" })
```
# 生成随机颜色
```
const generateRandomHexColor = () => `#${Math.floor(Math.random() * 0xffffff).toString(16)}`;
```