在前面,我們也分享了很多關(guān)于JavaScript的技巧,今天我們再來看看這10個超級實用的技巧,希望能夠?qū)δ阌兴鶐椭?/p>
1.過濾錯誤值
如果要過濾數(shù)組中的false、0、null、undefined等值,可以這樣做:
const array = [1, 0, undefined, 6, 7, ‘’, false]; array.filter(Boolean);
2.判斷簡化
如果有這樣的判斷:
if(a === undefined || a === 10 || a=== 15 || a === null) { //… }
可以使用數(shù)組來簡化這個判斷邏輯:
if([undefined, 10, 15, null].includes(a)) { //… }
這樣,代碼會更簡單,更容易擴(kuò)展。如果還有判斷需要等于a,可以直接加到數(shù)組中。
3.初始化數(shù)組
如果需要初始化一個指定長度的一維數(shù)組并指定一個默認(rèn)值,可以這樣完成:
const array = Array(6).fill(‘’); // [‘’, ‘’, ‘’, ‘’, ‘’, ‘’]
如果需要初始化一個指定長度的二維數(shù)組并指定一個默認(rèn)值,可以這樣做:
const matrix = Array(6).fill(0).map(() => Array(5).fill(0));
4.清空數(shù)組
要清除數(shù)組,請將數(shù)組的長度設(shè)置為 0:
let array = [“A”, “B”, “C”, “D”, “E”, “F”] array.length = 0 console.log(array) // []
5.連接數(shù)組
我們需要連接幾個數(shù)組,我們可以使用擴(kuò)展運(yùn)算符:
const start = [1, 2] const end = [5, 6, 7] const numbers = [9, …start, …end, 8] // [9, 1, 2, 5, 6, 7 , 8]
或者使用數(shù)組的 concat() 方法:
const start = [1, 2, 3, 4] const end = [5, 6, 7] start. concat(end); // [1, 2, 3, 4, 5, 6, 7]
但是在使用 concat() 方法時,如果要合并的數(shù)組很大,concat() 函數(shù)在創(chuàng)建單獨(dú)的新數(shù)組時會消耗大量內(nèi)存。這時候可以使用以下方法合并數(shù)組:
Array.prototype.push.apply(start, end)
這樣,顯著減少了內(nèi)存使用量。
6.將數(shù)組元素轉(zhuǎn)換為數(shù)字
如果你有一個數(shù)組,并且需要將數(shù)組中的元素轉(zhuǎn)換為數(shù)字,可以使用 map 方法來實現(xiàn):
const array = [‘12’, ‘1’, ‘3.1415’, ‘-10.01’]; array.map(Number); // [12, 1, 3.1415, -10.01]
這樣,map 將在遍歷數(shù)組時對數(shù)組的每個元素執(zhí)行 Number 構(gòu)造函數(shù)并返回結(jié)果。
7.將類數(shù)組轉(zhuǎn)換為數(shù)組
可以使用以下方法將類似數(shù)組的參數(shù)轉(zhuǎn)換為數(shù)組:
Array.prototype.slice.call(arguments);
除此之外,還可以使用展開運(yùn)算符來實現(xiàn):[…arguments]
8.縮短console.log()
每次調(diào)試都要寫很多console.log()會比較麻煩,可以用下面的形式來簡化這段代碼:
const c = console.log.bind(document) c(321) c(“hello mygod”)
每次執(zhí)行 c 方法時都會這樣做。
9.刪除一個數(shù)組元素
如果我們想刪除數(shù)組中的一個元素,可以使用delete來實現(xiàn),但是刪除后的元素會變成undefined,不會消失,執(zhí)行的時候會消耗很多時間,大部分情況下不能滿足我們要求。所以,你可以使用數(shù)組的 splice() 方法來移除數(shù)組元素:
const array = [“a”, “b”, “c”, “d”] array.splice(0, 2) // [“a”, “b”]
10.檢查對象是否為空
我們需要檢查對象是否為空,我們可以使用如下:
Object.keys({}).length // 0
Object.keys({key: 1}).length // 1
Object.keys() 方法用于獲取對象的鍵并返 回包含這些鍵值的數(shù)組。如果返回的數(shù)組長度為 0,則對象必須為空。