一行代码实现这些复杂功能,JavaScript太强大了!


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);  

欢迎补充。