JavaScript 以其灵活性和强大的表达能力而闻名,分享一些值得使用的 JavaScript 一行代码解决方案,这些代码简洁优雅却能实现复杂的功能。
1. 数组操作神器
数组去重
const unique = arr => [...new Set(arr)];
// 示例
const numbers = [1, 2, 2, 3, 3, 4, 5, 5];
console.log(unique(numbers)); // [1, 2, 3, 4, 5]
数组扁平化
const flatten = arr => arr.flat(Infinity);
// 示例
const nested = [1, [2, 3], [4, [5, 6]]];
console.log(flatten(nested)); // [1, 2, 3, 4, 5, 6]
快速生成数字序列
const range = (start, end) => [...Array(end - start + 1)].map((_, i) => start + i);
// 示例
console.log(range(1, 5)); // [1, 2, 3, 4, 5]
2. 字符串处理技巧
生成随机字符串
const randomString = length => Math.random().toString(36).substring(2, length + 2);
// 示例
console.log(randomString(10)); // "a1b2c3d4e5"
字符串反转
const reverse = str => str.split('').reverse().join('');
// 示例
console.log(reverse('hello')); // "olleh"
检查回文字符串
const isPalindrome = str => str === str.split('').reverse().join('');
// 示例
console.log(isPalindrome('radar')); // true
console.log(isPalindrome('hello')); // false
3. 对象处理大师
深度克隆对象
const deepClone = obj => JSON.parse(JSON.stringify(obj));
// 示例
const original = { a: 1, b: { c: 2 } };
const clone = deepClone(original);
合并多个对象

提取对象字段

4. 函数式编程技巧
函数组合

函数柯里化

5. 日期时间处理
格式化日期

计算时间差

6. DOM 操作技巧
获取所有表单数据

平滑滚动到顶部

7. 实用工具函数
防抖函数

节流函数
const throttle = (fn, delay) => {
let last = 0;
return (...args) => {
const now = Date.now();
if (now - last >= delay) {
fn(...args);
last = now;
}
};
};
// 示例
const throttledScroll = throttle(handleScroll, 100);