十個(gè) JavaScript 一行代碼,解決 90% 的開(kāi)發(fā)難題
在JavaScript開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到一些看似復(fù)雜但實(shí)際上可以通過(guò)簡(jiǎn)潔的代碼解決的問(wèn)題。下面分享10個(gè)JavaScript一行代碼技巧,解決日常開(kāi)發(fā)中的常見(jiàn)難題。
1. 數(shù)組去重
const uniqueArray = [...new Set(array)];
這行代碼利用Set對(duì)象的唯一性特點(diǎn),可以一步完成數(shù)組去重,比傳統(tǒng)的循環(huán)方法更加簡(jiǎn)潔高效。
2. 對(duì)象屬性值轉(zhuǎn)數(shù)組
const values = Object.values(object);
直接獲取對(duì)象所有屬性的值并轉(zhuǎn)換為數(shù)組,避免了手動(dòng)遍歷對(duì)象。
3. 獲取隨機(jī)布爾值
const randomBoolean = Math.random() >= 0.5;
生成一個(gè)隨機(jī)的布爾值,在需要隨機(jī)決策時(shí)非常有用。
4. 從數(shù)組中獲取隨機(jī)元素
const randomElement = array[Math.floor(Math.random() * array.length)];
這行代碼可以從數(shù)組中隨機(jī)選取一個(gè)元素,適用于抽獎(jiǎng)、隨機(jī)展示等場(chǎng)景。
5. 檢查變量是否為空值
const isNullOrUndefined = value == null;
這行代碼可以同時(shí)檢查變量是否為null或undefined,簡(jiǎn)化條件判斷。
6. 將字符串轉(zhuǎn)換為數(shù)字
const num = +"42";
使用加號(hào)操作符可以快速將字符串轉(zhuǎn)換為數(shù)字,比parseInt()更簡(jiǎn)潔。
7. 截取小數(shù)點(diǎn)后指定位數(shù)
const toFixed = num => Math.round(num * 100) / 100; // 保留兩位小數(shù)
比toFixed()方法更可靠的保留小數(shù)位數(shù)方法,避免了四舍五入的問(wèn)題。
8. 合并對(duì)象
const mergedObject = {...obj1, ...obj2};
使用擴(kuò)展運(yùn)算符可以快速合并多個(gè)對(duì)象,后面的對(duì)象屬性會(huì)覆蓋前面的同名屬性。
9. 獲取URL參數(shù)
const params = Object.fromEntries(new URLSearchParams(window.location.search));
一行代碼解析URL中的查詢參數(shù),返回一個(gè)包含所有參數(shù)的對(duì)象。
10. 深拷貝對(duì)象
const deepCopy = JSON.parse(JSON.stringify(object));
雖然這種方法有局限性(不能處理函數(shù)、循環(huán)引用等),但對(duì)于大多數(shù)JSON結(jié)構(gòu)的數(shù)據(jù)來(lái)說(shuō),是最簡(jiǎn)單的深拷貝方法。