開箱即用的工具函數庫Xijs更新指南(v1.2.6)
xijs 是一款開箱即用的 js 業務工具庫, 聚集于解決業務中遇到的常用函數邏輯問題, 幫助開發者更高效的開展業務開發.
接下來就和大家一起分享一下 v1.2.6 版本的更新內容以及后續的更新方向.
貢獻者列表:

1. 計算變量內存calculateMemory
該模塊主要由 zhengsixsix 貢獻, 我們可以使用這個方法輕松的計算字符串的體積, 在文檔類產品中非常實用, 具體使用如下:
import { calculateMemory } from 'xijs';
calculateMemory(obj); // -> 114 B
calculateMemory(obj, 'B'); // -> 114 B
calculateMemory(obj, 'KB');// -> 0.11 KB
calculateMemory(obj, 'MB');// -> 0.00 MB2. charCount(獲取字符串中指定字符的個數)
該模塊主要由 kevin 貢獻, 這個方法可以輕松的幫我們計算字符串中指定字符的個數, 用于對字符串進行統計, 具體使用如下:
import { charCount } from 'xijs';
charCount('abc-def-h5-dooring', '-'); // -> 33. designateRepeat(計算指定字符在字符串中出現的次數)
該模塊主要由 kevin 貢獻, 這個方法可以幫我們計算指定字符在字符串中出現的次數, 具體使用如下:
import { designateRepeat } from 'xijs';
console.log(designateRepeat('123334567898765433', '3'));這個功能還是非常實用的, 感興趣的朋友可以直接使用.
4. getRepeatCharacter(計算字符串中重復字符以及重復字符的次數)
該模塊主要由 大臉貓 貢獻, 它可以幫助我們輕松計算字符串中重復字符以及重復字符的次數, 具體使用如下:
import { getRepeatCharacter } from 'xijs';
// 計算字符串中重復字符以及重復字符的次數
const res = getRepeatCharacter('bigBbbi');// ->{b: 3, i: 2, g: 1, B: 1}5. arrayRepeat(計算字符串中重復字符以及重復字符的次數)
該模塊主要由 kevin 貢獻, 具體使用如下:
import { arrayRepeat } from 'xijs';
const arr = ['1', '2', '1', 1, 2, {a: 1, b: 2}, {a: 1, b: 3}, {a: 1, b: 2, c: 3}, {b: 2, c: 3, a: 1}, {c: 3, b: 2, a: 1}, {a: 1, b: 2}, {a: 1, c: 'w', b: 2}, {a: 1, b: 2, c: 'w'}]
console.log(arrayRepeat(arr)) // {"1":1,"2":1,""1"":2,""2"":1,"{"a":1,"b":2}":2,"{"a":1,"b":3}":1,"{"a":1,"b":2,"c":3}":3,"{"a":1,"c":"w","b":2}":2}
console.log(arrayRepeat([{ 1: 1 }, {a: 1, b: 2, c: 3}, {b: 2, c: 3, a: 1}, {c: 3, b: 2, a: 1}]))
console.log(arrayRepeat([{b: 2, a: 1}]))6. PriorityQueue(compareFunction?)(優先級隊列)
該模塊主要由 EasyRo 貢獻, 參數介紹如下:

具體使用如下:
import { PriorityQueue } from 'xijs';
const customCompare = (a: number, b: number) => {
return b - a;
};
const pq = new PriorityQueue(customCompare);
pq.enqueue(5);
pq.enqueue(3);
pq.enqueue(8);
expect(pq.dequeue()).toBe(8);
expect(pq.dequeue()).toBe(5);
expect(pq.dequeue()).toBe(3);7. 代碼單元測試補全和文檔規范
該部分主要由 MrYeZiqing 貢獻, 具體測試相關可以參考 github 倉庫.
接下來我們跑一下單元測試, 對整個庫做一個全面的掃描:

整個測試一共花了18.59s, 測試全部通過, 各位小伙伴們可以放松食用.
為了方便大家更好的了解 xijs 這個庫, 我列一個完整的目錄結構供大家參考, 也可以直接用 xijs 的在線文檔中去參考學習.
文檔地址: http://h5.dooring.cn/xijs
更多xijs函數列表
- 瀏覽器相關
getRuntimeEnv - 獲取運行環境
getSelection - 獲取選中文本
redirect - 重定向
store - 本地存儲庫
XCookie - 瀏覽器端cookie操作類
- 字符串操作
base64 - base64編碼和解碼
camelize - 橫線轉駝峰命名
charCount - 獲取字符數
formatNumber - 數值千分位格式化
formatPercent - 值轉換為百分數表示
hyCompact - 緊湊型駝峰命名轉換
hyphenate - 駝峰命名轉橫線命名
randomStr - 生成隨機字符串
repeat - 生成重復字符串
uuid - 生成唯一id
常用判斷函數
isArray - 判斷數組類型
isEmpty - 判斷空對象
isPc - 判斷設備類型
isPhone - 判斷手機號格式
isEmail - 判斷郵箱函數
isIdCard - 判斷身份證格式函數
lang - 判斷中英文
regexp - 常用正則表達式
dataDesensitization - 數據脫敏
數據結構相關
cloneDeep - 數據深拷貝
arrayToListNode - 數組轉成鏈表
linkListToArray - 鏈表結構轉數組結構
dateCalculate - 日期計算
timeCutStr - 計算時間差
timeSub - 計算時間間隔
transformArray - 樹結構轉扁平數組
formatDate - 時間格式化
getRawType - 獲取數據類型
obj2url - 將對象參數解析為url字符串
transformTree - 扁平轉樹結構
url2obj - url字符串轉對象
bothLinkedList - 雙向鏈表
圖片處理函數
compressImg - 自定義壓縮圖片函數
file2img - 文件轉圖片對象
hex2rgba - hex色值轉rgba
rgba2obj - 將rgba值轉化為rgba對象
genRandomColor - 獲取隨機顏色
js高級函數
debounce - 防抖函數
parser - json超級解析器
sleep - 睡眠函數
throttle - 節流函數
常用算法和數據結構
bubbleSort - 冒泡排序
quickSort - 快速排序
數學計算
average - 計算數組平均值
difference - 創建一個排除指定項的數組
random - 返回區域內隨機數
shuffle - 打亂數組
factorial - 階乘
fibonacci - 計算斐波那契數
sum - 求和數組
幾何計算
coordinatesInCircle - 生成圓內任意坐標
coordinatesInRect - 生成矩形內任意坐標
judgePointInCircle - 判斷一點是否在圓內
dom操作
downloadFileWithText - 下載文本文件
downloadFileWithUrl - 下載鏈接文件
$ - 通過id,class等獲取dom
getDomPageXY - 獲取dom元素在當前文檔中的絕對位置
getDomScreenXY - 獲取dom元素相對于screen絕對位置
getDomText - 獲取文本內容
xss - 轉義html標簽
歡迎大家star推薦和共建, 讓前端工作更高效.
github: https://github.com/MrXujiang/xijs































