?
今天這篇文章重點(diǎn)介紹15個(gè)強(qiáng)大的單行代碼處理技巧,可以解決很多常見的開發(fā)任務(wù),現(xiàn)在,我們就開始今天的學(xué)習(xí)。
1、檢查一個(gè)數(shù)字是否甚至是:
const isEven = n => n % 2 === 0
示例:
console.log(isEven(4)); // true
console.log(isEven(5)); // false
描述:此技巧使用Modulo運(yùn)算符(%)來確定n除以2的余數(shù)是0。如果是,則數(shù)為偶數(shù);否則,這很奇怪。
2、從數(shù)組中獲取最大值:
const max = arr => Math.max(...arr);
示例:
const numbers = [10, 5, 18];
console.log(max(numbers)); // 18
描述:這使用擴(kuò)展運(yùn)算符(``…')將數(shù)組arr擴(kuò)展到Math.max()函數(shù)的單個(gè)參數(shù)中,該函數(shù)返回最大的值。
3、從數(shù)組中獲取最小值:
const min = arr => Math.min(...arr);
示例:
const numbers = [10, 5, 18];
console.log(min(numbers)); // 5
描述:類似于最大值,此技巧使用Math.min()與傳播操作員一起找到數(shù)組中的最小值。
4、反向字符串:
const reverseString = str => str.split('').reverse().join('');
示例:
const message = "Hello";
console.log(reverseString(message)); // "olleH"
描述:這可以有效地使用一系列方法逆轉(zhuǎn)字符串:
split(''):將字符串轉(zhuǎn)換為字符數(shù)組。
reverse(): :逆轉(zhuǎn)字符的順序。
join(''):將反向字符重新連接到字符串中。
5、檢查字符串是否是回文:
const isPalindrome = str => str === str.split('').reverse().join('');
示例:
console.log(isPalindrome("racecar")); // true
console.log(isPalindrome("hello")); // false
描述:這建立在字符串反轉(zhuǎn)技術(shù)上。它檢查原始字符串是否與反向字符串相同,指示alendindrome。
6、從數(shù)組中刪除重復(fù)項(xiàng):
const unique = arr => [...new Set(arr)];
示例:
const numbers = [1, 2, 2, 3, 4, 1];
console.log(unique(numbers)); // [1, 2, 3, 4]
描述:此單線使用集合來消除重復(fù)項(xiàng)。New Set(ARR)從數(shù)組中創(chuàng)建一個(gè)集合,固有地刪除了重復(fù)項(xiàng),而擴(kuò)展運(yùn)算符(``...')將其轉(zhuǎn)換回?cái)?shù)組。
7、大寫字符串的第一個(gè)字母:
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);
示例:
const greeting = "hello";
console.log(capitalize(greeting)); // "Hello"
描述:這個(gè)單線大寫了字符串的第一個(gè)字母。它提取第一個(gè)字符,將其轉(zhuǎn)換為大寫,并將其與字符串的其余部分相連。
8、檢查字符串是否僅包含數(shù)字:
const isDigitsOnly = str => /^\d+$/.test(str);
示例:
console.log(isDigitsOnly("12345")); // true
console.log(isDigitsOnly("hello")); // false
描述:這使用正則表達(dá)式檢查字符串是否僅由數(shù)字組成。^\ d+$匹配一個(gè)以一個(gè)或多個(gè)數(shù)字開始和結(jié)尾的字符串。9、總和一個(gè)數(shù)組中的所有數(shù)字:const sum = arr => arr.reduce((acc, val) => acc + val, 0);
示例:
const numbers = [1, 2, 3, 4];
console.log(sum(numbers)); // 10
描述:這采用reald()方法通過數(shù)組迭代,將每個(gè)值添加到累加器,該值從0開始。10、以yyyy-mm-dd格式獲取當(dāng)前日期:const today = () => new Date().toISOString().split('T')[0];
示例:
console.log(today()); // e.g., "2024-10-12"
描述:這通過將當(dāng)前日期轉(zhuǎn)換為ISO字符串格式并提取日期零件來以標(biāo)準(zhǔn)化格式返回今天的日期。
11、生成一系列隨機(jī)顏色:
const randomColors = n => Array.from({ length: n }, () => '#' + Math.floor(Math.random() * 16777215).toString(16));
示例:
console.log(randomColors(3)); // e.g., ["#f0c", "#a3d", "#5c6"]
描述:這將使用narray.from()使用N隨機(jī)十六進(jìn)制顏色代碼創(chuàng)建一個(gè)數(shù)組,并用隨機(jī)數(shù)生成每種顏色。const shuffle = arr => arr.sort(() => Math.random() - 0.5);
示例:
console.log(shuffle([1, 2, 3])); // e.g., [3, 1, 2]
描述:這通過基于隨機(jī)比較器函數(shù)對(duì)數(shù)組中的元素順序隨機(jī)。const factorial = n => n <= 1 ? 1 : n * factorial(n - 1);
示例:
console.log(factorial(5)); // 120
描述:這將計(jì)算所有正整數(shù)的乘積,最多遞歸n。
14、檢查對(duì)象是否為空:
const isEmpty = obj => Object.keys(obj).length === 0;
示例:
console.log(isEmpty({})); // true
描述:這可以通過驗(yàn)證其鍵數(shù)組的長度來檢查對(duì)象是否沒有屬性。
15、將駱駝字符串轉(zhuǎn)換為連接式:
const camelToKebab = str => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
示例:
const camelCaseString = "thisIsCamelCase";
console.log(camelToKebab(camelCaseString)); // "this-is-camel-case"
描述:此將駱駝式字符串轉(zhuǎn)換為連接式案例,使用正則表達(dá)式:
替換(/([A-Z])([[A-Z])/g,'$ 1- $ 2'):查找小寫字母的出現(xiàn),然后是大寫字母,并用小寫字母,連字符和大寫字母代替。
tolowercase():將整個(gè)結(jié)果的字符串轉(zhuǎn)換為小寫,以進(jìn)行適當(dāng)?shù)目救獯袷健?/span>
這些單行對(duì)于在JavaScript中快速操作很有用,可以幫助你寫出更加簡(jiǎn)潔的代碼。
該文章在 2024/11/7 10:38:54 編輯過