分享 30 个 JavaScript 单行代码片段,提升你的工作效率

2023-10-22 17:18:15 浏览数 (1)

今天这篇文章,我想跟大家分享一些强大的 JavaScript 单行代码,因为使用这些单行代码可以帮助你提升工作效率,在这篇文章中,我总结了30个实用的代码技巧,希望这些代码技巧对你有用。

那么,我们现在就开始吧。

1. 反转字符串

代码语言:javascript复制
const reversedString = str => str.split('').reverse().join('');
reversedString("Hello World"); // dlroW olleH

2.标题大小写为字符串

代码语言:javascript复制
const titleCase = sentence => sentence.replace(/bw/g, char => char.toUpperCase());
titleCase("hello world"); // Hello World

3. 在变量之间交换值

代码语言:javascript复制
[a, b] = [b, a];

4. 将数字转换为布尔值

代码语言:javascript复制
const isTruthy = num => !!num;
isTruthy(0) // False

5. 从数组中获取唯一值

代码语言:javascript复制
const uniqueArray = arr => [...new Set(arr)];
uniqueArray([5,5,2,2,2,4,2]) // [ 5, 2, 4 ]

6. 截断字符串

代码语言:javascript复制
const truncateString = (str, maxLength) => (str.length > maxLength) ? `${str.slice(0, maxLength)}...` : str;
truncateString("Hello World", 8); // Hello Wo...

7. 深度克隆对象

代码语言:javascript复制
const deepClone = obj => JSON.parse(JSON.stringify(obj));

const obj1 = { name: "John", age: 40};
const obj2 = deepClone(obj1);
obj2.age = 20;
console.log(obj1.age); // 40

//This method works for most objects, but it has some limitations. Objects with circular references or functions cannot be converted to JSON, so this method will not work for those types of objects.

8. 查找数组中最后一次出现的位置

代码语言:javascript复制
const lastIndexOf = (arr, item) => arr.lastIndexOf(item);
lastIndexOf([5, 5, 4 , 2 , 3 , 4], 5) // 1

9. 合并数组

代码语言:javascript复制
const mergeArrays = (...arrays) => [].concat(...arrays);
mergeArrays([5, 5, 4], [2 , 3 , 4]) // [5, 5, 4, 2, 3, 4]

10.找到句子中最长的单词

代码语言:javascript复制
const longestWord = sentence => sentence.split(' ').reduce((longest, word) => word.length > longest.length ? word : longest, '');
longestWord("The quick brown fox jumped over the lazy dog") // jumped

11. 生成一个数字范围

代码语言:javascript复制
const range = (start, end) => [...Array(end - start   1)].map((_, i) => i   start);
range(5, 15); // [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

12. 检查对象是否为空

代码语言:javascript复制
const isEmptyObject = obj => Object.keys(obj).length === 0;
isEmptyObject({}) // true
isEmptyObject({ name: 'John' }) // false

13. 计算数字的平均值

代码语言:javascript复制
const average = arr => arr.reduce((acc, num) => acc   num, 0) / arr.length;
average([1, 2, 3, 4, 5, 6, 7, 8, 9]) // 5

14. 将对象转换为查询参数

代码语言:javascript复制
const objectToQueryParams = obj => Object.entries(obj).map(([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&');
objectToQueryParams({ page: 2, limit: 10 }) // page=2&limit=10

15. 计算数字的阶乘

代码语言:javascript复制
const factorial = num => num <= 1 ? 1 : num * factorial(num - 1);
factorial(4) // 24

16. 计算字符串中的元音数

代码语言:javascript复制
const countVowels = str => (str.match(/[aeiou]/gi) || []).length;
countVowels('The quick brown fox jumps over the lazy dog') // 11

17. 检查有效的电子邮件

代码语言:javascript复制
const isValidEmail = email => /^[w-] (.[w-] )*@([w-] .) [a-zA-Z]{2,7}$/.test(email);
isValidEmail("example@email.com") // true
isValidEmail("example") // false

18. 删除字符串中的空格

代码语言:javascript复制
const removeWhitespace = str => str.replace(/s/g, '');
removeWhitespace("H el l o") // Hello

19. 检查闰年

代码语言:javascript复制
const isLeapYear = year => (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
isLeapYear(2023) // false
isLeapYear(2004) // true

20.生成指定长度的随机字符串

代码语言:javascript复制
const generateRandomString = length => [...Array(length)].map(() => Math.random().toString(36)[2]).join('')
generateRandomString(8) // 4hq4zm7y

21.复制内容到剪贴板

代码语言:javascript复制
const copyToClipboard = (content) => navigator.clipboard.writeText(content)
copyToClipboard("Hello World")

22. 获取 HH:MM:SS 格式的当前时间

代码语言:javascript复制
const currentTime = () => new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false })
currentTime() // 19:52:21

23. 检查数字是偶数还是奇数

代码语言:javascript复制
const isEven = num => num % 2 === 0
isEven(1) // false
isEven(2) // true

24.检测是否为深色模式

代码语言:javascript复制
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
console.log(isDarkMode) // false

25. 滚动到页面顶部

代码语言:javascript复制
const goToTop = () => window.scrollTo(0, 0)
goToTop()

26. 检查有效日期

代码语言:javascript复制
const isValidDate = date => date instanceof Date && !isNaN(date);
isValidDate(new Date("This is not date.")) // false
isValidDate(new Date("08-10-2023")) // true

27. 生成日期范围

代码语言:javascript复制
const generateDateRange = (startDate, endDate) => Array.from({ length: (endDate - startDate) / (24 * 60 * 60 * 1000)   1 }, (_, index) => new Date(startDate.getTime()   index * 24 * 60 * 60 * 1000));
generateDateRange(new Date("2023-09-31"), new Date("2023-10-08")) // [Sun Oct 01 2023 05:30:00 GMT 0530 (India Standard Time), Mon Oct 02 2023 05:30:00 GMT 0530 (India Standard Time), Tue Oct 03 2023 05:30:00 GMT 0530 (India Standard Time), Wed Oct 04 2023 05:30:00 GMT 0530 (India Standard Time), Thu Oct 05 2023 05:30:00 GMT 0530 (India Standard Time), Fri Oct 06 2023 05:30:00 GMT 0530 (India Standard Time), Sat Oct 07 2023 05:30:00 GMT 0530 (India Standard Time), Sun Oct 08 2023 05:30:00 GMT 0530 (India Standard Time)]

28.计算两个日期之间的间隔

代码语言:javascript复制
const dayDiff = (d1, d2) => Math.ceil(Math.abs(d1.getTime() - d2.getTime()) / 86400000)
dayDiff(new Date("2023-10-08"), new Date("1999-04-31")) // 8926

29. 找出该日期是一年中的第几天

代码语言:javascript复制
const dayInYear = (d) => Math.floor((d - new Date(d.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24)
dayInYear(new Date('2023/10/08'))// 281

30.检查数组是否相等

代码语言:javascript复制
const areArraysEqual = (arr1, arr2) => JSON.stringify(arr1) === JSON.stringify(arr2);
areArraysEqual([1, 2, 3], [4, 5, 6]) // false
areArraysEqual([1, 2, 3], [1, 2, 3]) // false

结论

JavaScript 行话是很有价值的工具,可以简化复杂的任务并提高代码的可读性。通过理解和利用这些技术,不仅展示了自己的熟练程度,还展示了编写高效、清晰和可维护代码的能力。

我希望你能发现它们有用之处,让它们适应你的项目,帮助你提升开发效率,不断优化你的解决方案。

如果您喜欢这篇文章并想阅读更多内容,请务必关注我,我将不定期的分享开发知识。

感谢你的阅读!祝编程愉快!

0 人点赞