從本文開始小編將定期發布javascript相關的代碼集錦,每次發十個與大家分享,首先是數組篇,也許有人會說,可以用常用的lodash的等庫啊。但是小編覺得,去讀lodash源碼的人並不多吧,所以分享的代碼集錦權當一種學習了,首先開始的是數組篇,基於es6 規範
all
allEqual
找出數組中滿足篩洗條件中的所有元素.
any
// 找出數組中滿足篩洗條件中的所有元素.
// 使用Array.prototype.every()檢查數組的所有元素是否與第一個元素相同。
// 使用嚴格比較運算符比較數組中的元素,該運算符不考慮NaN自不等式。
arrayToCSV
// 將2D數組轉換為逗號分隔值(CSV)字符串。
// 使用Array.prototype.map()和Array.prototype.join(delimiter)
// 將各個1D數組(行)組合成字符串。使用Array.prototype.join('\ n')
// 將所有行組合成CSV字符串,分隔 每行都有一個換行符。省略第二個參數delimiter,使用默認的分隔符。
bifurcate
// 將值拆分為兩組。如果過濾器中的元素是有值,則集合中的對應元素屬於第一組;
// 否則,它屬於第二組。
// 使用Array.prototype.reduce()和Array.prototype.push()根據過濾器向組添加元素。
bifurcateBy
// 根據回調函數將值拆分為兩個組,回調函數指定輸入集合中的元素屬於哪個組。
// 如果回調函數返回真值,則集合元素屬於第一個組; 否則,它屬於第二組。
// 使用Array.prototype.reduce()和Array.prototype.push()
// 根據fn為每個元素返回的值向組添加元素。
chunk
/**
* chunk 分塊
* 將數組塊化為指定大小的較小數組。
* 使用Array.from()創建一個新數組,該數組符合將要生成的塊數。
* 使用Array.prototype.slice()將新數組的每個元素映射到一個大小的長度的塊。
* 如果是原始的 數組不能均勻分割,最後的chunk將包含剩餘的元素。
*/
compact
/**
* compact
* 從數組中刪除可為false的值。
* 使用Array.prototype.filter()過濾掉falsey值(false,null,0,「」,undefined和NaN)。
* */
countBy
/**
* countBy
* 根據給定的函數對數組的元素進行分組,並返回每個組中元素的數量。
* 使用Array.prototype.map()將數組的值映射到函數或屬性名稱。
* 使用Array.prototype.reduce()創建一個對象,其中鍵是從映射結果生成的。
*/
本次10個js常用函數算法集錦,就到此為止,大家慢慢消化,下次再見!