数组操作类
查找数组中的最大值
const maxNumber = (arr) => Math.max(...arr);
从数组中删除重复项目
const uniqueArray = (arr) => [...new Set(arr)];
数组元素的总和
const arraySum = (arr) => arr.reduce((acc, val) => acc + val, 0);
展平数组
const flattenArray = (arr) => arr.flat();
打乱数组
const shuffleArray = (arr) => arr.sort(() => Math.random() - 0.5);
查找两个数组的交集
const arrayIntersection = (arr1, arr2) => arr1.filter(value => arr2.includes(value));
获取数组中的最后一项
const getLastItem = (arr) => arr.slice(-1)[0];
从数组中删除虚假值
const removeFalsy = (arr) => arr.filter(Boolean)
字符串操作类
检查字符串是否为回文(例如:123454321)
const isPalindrome = (str) => str === str.split('').reverse().join('');
将字符串中每个单词的首字母大写
const capitalizeWords = (str) => str.replace(/\b\w/g, char => char.toUpperCase());
const uppercaseWords = (str) => str.replace(/^(.)|\s+(.)/g, (c) => c.toUpperCase())
字符串首字母大写
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)
生成指定长度的随机字符串
const generateRandomString = length => [...Array(length)].map(() => Math.random().toString(36)[2]).join('')
转义HTML特殊字符(防XSS)
const escape = (str) => str.replace(/[&<>"']/g, (m) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[m]))
数字操作类
检查数字是偶数还是奇数
const isEven = (num) => num % 2 === 0;
检查数字是否为素数
const isPrime = (num) => num > 1 && Array.from({ length: Math.sqrt(num) + 1 }, (_, i) => i + 2).every(divisor => num % divisor !== 0);
其他变量操作
将摄氏度转换为华氏度
const celsiusToFahrenheit = (celsius) => celsius * 9/5 + 32;
生成随机十六进制颜色
const randomHexColor = () => '#'+ Math.floor(Math.random()*16777215).toString(16);
将 rgba 转换为十六进制
const rgbaToHex = (r, g, b) => '#' + [r, g, b].map(num => parseInt(num).toString(16).padStart(2, '0')).join('')
获取变量的类型
const typeOf = (obj) => Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()
交换两个变量(不使用临时变量)
[a, b] = [b, a];
计算两个日期之间的间隔
const dayDiff = (d1, d2) => Math.ceil(Math.abs(d1.getTime() - d2.getTime()) / 86400000)
检查对象是否为空(推荐使用isEmpty)
const isObjectEmpty = (obj) => Object.keys(obj).length === 0;
const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object
页面操作类
将内容复制到剪贴板
const copyToClipboard = (content) => navigator.clipboard.writeText(content)
获取鼠标选择
const getSelectedText = () => window.getSelection().toString()
滚动到页面顶部
const goToTop = () => window.scrollTo(0, 0)