stackoverflow常用工具庫(kù)總結(jié)
簡(jiǎn)介
每個(gè)前端開(kāi)發(fā)人員都有自己的 utils 庫(kù), 這些方法我們高頻使用,但又要在每個(gè)項(xiàng)目中重寫。
今天我要給大家介紹一款超小且實(shí)用的函數(shù)工具庫(kù): bbo
bbo
是不同于常見(jiàn)的工具庫(kù)的,諸如lodash、underscore、lazy.js等。它的特點(diǎn)就是:高頻使用。
bbo
項(xiàng)目整理了日常開(kāi)發(fā)中最常用的功能。這些功能在您的開(kāi)發(fā)中幾乎無(wú)處不在,并且在主流的函數(shù)工具庫(kù)中找不到。
大多數(shù)代碼來(lái)自于stackoverflow.com 網(wǎng)站中的高分答案(在此,向原始作者表示you'zhong敬意)。項(xiàng)目在 gzip 壓縮下只有 7K, 所以你可以隨時(shí)隨地使用。
API概覽
這里給大家貼一張函數(shù)功能清單。
通過(guò)方法名能直接意會(huì)出函數(shù)的功能。函數(shù)的分類也很清楚明了。認(rèn)真核對(duì)了下,90%+的函數(shù)都在平時(shí)工作中經(jīng)常用到。
安裝和使用
使用 npm 安裝
npm install bbo --save
直接將 js 引入到瀏覽器中
國(guó)內(nèi)用戶可以直接使用此cdn
<script src="https://mat1.gtimg.com/www/js/libs/bbo.min.js" />
或者下載到本地再引入。
<script src="bbo.min.js" type="text/javascript"></script>
這里給大家舉幾個(gè)例子:
bbo.numberFormat(1234.56, 2, ',', ' '); // => '1 234,56'; bbo.split([1, 2, 3, 4, 5], 2); // => [[1,2], [3,4], [5]] bbo.entries({ c: 8, a: 4 }); // => [['c', 8], ['a', 4]] bbo.get({ a: { aa: { aaa: 2 } }, b: 4 }, "a.aa.aaa"); // => 2 bbo.union([1, 2, 3], [4, 3, 2]); // => [1, 2, 3, 4] bbo.intersect([1, 2, 3], [4, 3, 2]); // => [2, 3] bbo.unionBy([2.1], [1.2, 2.3], Math.floor); // [2.1, 1.2] bbo.mapValues({ a: 3, b: 5, c: 9 }, (value) => value + 1); //=> {a: 4, b: 6, c: 10} bbo.compact([0, 1, false, 2, "", 3]); // [1, 2, 3] bbo.flush({a: 2, b: null, c: 4, d: undefined}); // => {a: 2, c: 4} bbo.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // => [1] bbo.search("3", { a: 3, b: 5, c: 7 }); // => 'a' bbo.size({ a: 1, b: 2 }); // => 2 var users = [ { user: "barney", age: 36, active: true }, { user: "fred", age: 40, active: false },]; bbo.find(users, { age: 1, active: true }); // => {"active": true, "age": 36, "user": "barney"} bbo.findIndex(users, ["active", false]); // => 1
再來(lái)看看鏈?zhǔn)秸{(diào)用。
var array1 = [1, 2, 3, null]; var array2 = [3, 4, 5, '']; var object1 = { a: 6, b: 7 }; var object2 = { c: 8, d: 9 }; bbo .chain(object1) .extend(object2) // => {a: 6, b: 7, c: 8, d: 9} .entries() // => [["a", 6], ["b", 7], ["c", 8], ["d", 9]] .thru((words) => { const temp = []; bbo.forEach(words, (item, index) => { temp.push(item[1]); }); return temp; }) // => [6, 7, 8, 9] .union(array1) // => [6, 7, 8, 9, 1, 2, 3, null] .union(array2) // => [6, 7, 8, 9, 1, 2, 3, null, 4, 5, ""] .compact() // => [6, 7, 8, 9, 1, 2, 3, 4, 5] .thru((array) => { return array.sort(); }) // => [1, 2, 3, 4, 5, 6, 7, 8, 9] .value(); // return => [1, 2, 3, 4, 5, 6, 7, 8, 9]
更多的函數(shù)功能和例子,大家可以參閱下面的鏈接。
官方地址 tnfe.github.io/bbo/
以上就是stackoverflow常用工具庫(kù)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于stackoverflow工具庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JS實(shí)現(xiàn)兼容性較好的隨屏滾動(dòng)效果
這篇文章主要介紹了JS實(shí)現(xiàn)兼容性較好的隨屏滾動(dòng)效果,演示了固定位置顯示和隨屏滾動(dòng)兩種效果的實(shí)現(xiàn)方法,涉及css樣式的設(shè)置與結(jié)合時(shí)間函數(shù)遞歸調(diào)用實(shí)現(xiàn)滾屏的技巧,需要的朋友可以參考下2015-11-11js實(shí)現(xiàn)按鈕控制圖片360度翻轉(zhuǎn)特效的方法
這篇文章主要介紹了js實(shí)現(xiàn)按鈕控制圖片360度翻轉(zhuǎn)特效的方法,涉及HTML5中canvas方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02javascript 禁用IE工具欄,導(dǎo)航欄等等實(shí)現(xiàn)代碼
在處理問(wèn)題時(shí)候遇到的,就順便記錄與大家一起分享下,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-048個(gè)開(kāi)發(fā)者必須知道的JavaScript深層概念(推薦)
JavaScript有一個(gè)名為“調(diào)用堆?!保–all Stack)的簡(jiǎn)單列表,它逐一管理任務(wù)(堆棧算法),但是當(dāng)異步任務(wù)被傳遞時(shí),JavaScript會(huì)把它彈出到web API,瀏覽器就會(huì)處理它,這篇文章主要介紹了8個(gè)開(kāi)發(fā)者必須知道的JavaScript深層概念,需要的朋友可以參考下2022-10-10JS中video標(biāo)簽自動(dòng)播放音視頻并繪制波形圖效果
html中的<video>標(biāo)簽可以用來(lái)播放常見(jiàn)的音視頻格式,支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等,當(dāng)然支持的格式也和瀏覽器和操作系統(tǒng)有關(guān),這篇文章主要介紹了video標(biāo)簽自動(dòng)播放音視頻并繪制波形圖,需要的朋友可以參考下2023-09-09JS回調(diào)函數(shù)的應(yīng)用簡(jiǎn)單實(shí)例
這篇文章主要分享了JS回調(diào)函數(shù)應(yīng)用的簡(jiǎn)單實(shí)例,比較實(shí)用,需要的朋友可以參考下2014-09-09基于javascript實(shí)現(xiàn)樣式清新圖片輪播特效
這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)樣式清新圖片輪播特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03JavaScript Event學(xué)習(xí)補(bǔ)遺 addEventSimple
這里有個(gè)addEventSimple和removeEventSimple函數(shù),有時(shí)候需要不那么顯眼的事件處理程序的時(shí)候我就用這兩個(gè)函數(shù)注冊(cè)。2010-02-02