JS的數據類型判斷函數、數組對象結構處理、日期轉換函數,瀏覽器類型判斷函數合集
阿新 • • 發佈:2019-05-01
-i size 數據 parse 並集 lte 全局 shel undefined
工具地址:https://github.com/BothEyes1993/bes-jstools
bes-jstools
100多個基礎常用JS函數和各種數據轉換處理集合大全,此工具包是在 outils 的基礎上,加上個人平時收集的代碼片段進行的二次整合
Browser Support
7+ ? | Latest ? | Latest ? | Latest ? | Latest ? | 6.1+ ? |
Installing
npm install bes-jstools --save
Using nodejs
const BesUtils = require('bes-jstools')
Get on unpkg
<script src="https://unpkg.com/[email protected]/dist/bes-utils.min.js"></script>
ES6 Module import
import BesUtils from 'bes-jstools'
API
- 基礎函數
- isNaN (val) 判斷是否非數值
- isFinite (val) 判斷是否為有限數值
- isUndefined (val) 判斷 Undefined
- isArray (val) 判斷是否數組
- isFloat (val) 判斷是否小數
- isInteger (val) 判斷是否整數
- isBoolean (val) 判斷是否 Boolean 對象
- isString (val) 判斷是否 String 對象
- isNumber (val) 判斷是否 Number 對象
- isRegExp (val) 判斷是否 RegExp 對象
- isObject (val) 判斷是否 Object 對象
- isPlainObject (val) 判斷是否是一個對象
- isDate (val) 判斷是否 Date 對象
- isError (val) 判斷是否 Error 對象
- isTypeError (val) 判斷是否 TypeError 對象
- isEmpty (val) 判斷是否為空,包括空對象、空數值、空字符串
- isNull (val) 判斷是否為 Null
- isSymbol (val) 判斷是否 Symbol 對象
- isArguments (val) 判斷是否 Arguments 對象
- isElement (val) 判斷是否 Element 對象
- isDocument (val) 判斷是否 Document 對象
- isWindow (val) 判斷是否 Window 對象
- isFormData (val) 判斷是否 FormData 對象
- isMap (val) 判斷是否 Map 對象
- isWeakMap (val) 判斷是否 WeakMap 對象
- isSet (val) 判斷是否 Set 對象
- isWeakSet (val) 判斷是否 WeakSet 對象
- isLeapYear (date) 判斷是否閏年
- isMatch (obj, source) 判斷屬性中的鍵和值是否包含在對象中
- isEqual (obj1, obj2) 深度比較兩個對象之間的值是否相等
- isEqualWith (obj1, obj2, func) 深度比較兩個對象之間的值是否相等,使用自定義比較函數
- isDateSame (date1, date2, format) 判斷兩個日期是否相同
- 常用函數
- toNumber ( num ) 轉數值
- toInteger ( num ) 轉整數
- toFixedNumber ( num, digits ) 和 Number.toFixed 類似,區別就是不會對小數進行四舍五入,結果返回數值
- toFixedString ( num, digits ) 和 Number.toFixed 類似,區別就是不會對小數進行四舍五入,結果返回字符串
- toArray ( array ) 將對象或者偽數組轉為新數組
- toStringJSON (str) 字符串轉 JSON
- toJSONString (obj) JSON 轉字符串
- getType (obj) 獲取對象類型
- getSize ( obj ) 返回對象的長度
- uniqueId ( prefix ) 獲取一個全局唯一標識
- uniq ( array ) 數組去重
- union ( ...array ) 將多個數的值返回唯一的並集數組
- random ( min, max ) 獲取一個指定範圍內隨機數
- range ( start, stop, step ) 序號列表生成函數
- clear (obj[, defs, assigns]) 清空對象; defs如果不傳(清空所有屬性)、如果傳對象(清空並繼承)、如果傳值(給所有賦值)
- remove (obj, iteratee) 移除對象屬性
- assign (destination, ...sources) 淺拷貝一個或者多個對象到目標對象中,如果第一值是true,則使用深拷貝
- clone (obj, deep) 淺拷貝/深拷貝
- destructuring (obj, ...target) 將一個或者多個對象值解構到目標對象
- trim ( str ) 去除字符串左右兩邊的空格
- trimLeft ( str ) 去除字符串左邊的空格
- trimRight ( str ) 去除字符串右邊的空格
- escape ( str ) 轉義HTML字符串,替換&, <, >, ", ‘, `字符
- unescape ( str ) 反轉 escape
- camelCase ( str ) 將帶駝峰字符串轉成字符串
- kebabCase ( str ) 將字符串轉成駝峰字符串
- repeat ( str, count ) 將字符串重復 n 次
- padStart ( str, targetLength, padString ) 用指定字符從前面開始補全字符串
- padEnd ( str, targetLength [, padString] ) 用指定字符從後面開始補全字符串
- startsWith ( str, val [, startIndex] ) 判斷字符串是否在源字符串的頭部
- endsWith ( str, val [, startIndex] ) 判斷字符串是否在源字符串的尾部
- slice ( array, start, end ) 裁剪 Arguments 或數組 array,從 start 位置開始到 end 結束,但不包括 end 本身的位置
- indexOf (obj, val) 返回對象第一個索引值
- findIndexOf (obj, iteratee [, context]) 返回對象第一個索引值
- lastIndexOf (obj, val) 從最後開始的索引值,返回對象第一個索引值
- findLastIndexOf (obj, iteratee [, context]) 從最後開始的索引值,返回對象第一個索引值
- includes (obj, val) 判斷對象是否包含該值,成功返回 true 否則 false
- includeArrays (array1, array2) 判斷數組是否包含另一數組
- each ( obj, iteratee [, context] ) 通用叠代器
- arrayEach ( obj, iteratee [, context] ) 數組叠代器
- objectEach ( obj, iteratee [, context] ) 對象叠代器
- lastEach ( obj, iteratee [, context] ) 通用叠代器,從最後開始叠代
- lastArrayEach ( obj, iteratee [, context] ) 數組叠代器,從最後開始叠代
- lastObjectEach ( obj, iteratee [, context] ) 對象叠代器,從最後開始叠代
- lastForOf ( obj, iteratee [, context] ) 通用叠代器,從最後開始叠代,支持 return false 跳出循環 break
- has (obj, property) 檢查鍵、路徑是否是該對象的屬性
- get (obj, property, defaultValue) 獲取對象的屬性的值,如果值為 undefined,則返回默認值
- set ( obj, property, value ) 設置對象屬性上的值。如果屬性不存在則創建它
- keys (obj) 獲取對象所有屬性
- values (obj) 獲取對象所有值
- entries (obj) 獲取對象所有屬性、值
- first (obj) 獲取對象第一個值
- last (obj) 獲取對象最後一個值
- groupBy ( obj, iteratee [, context] ) 集合分組,默認使用鍵值分組,如果有 iteratee 則使用結果進行分組
- countBy ( obj, iteratee [, context] ) 集合分組統計,返回各組中對象的數量統計
- sortBy ( arr, iteratee [, context] ) 數組按屬性值升序
- shuffle ( array ) 將一個數組隨機打亂,返回一個新的數組
- sample ( array, number ) 從一個數組中隨機返回幾個元素
- some ( obj, iteratee [, context] ) 對象中的值中的每一項運行給定函數,如果函數對任一項返回 true,則返回 true,否則返回 false
- every ( obj, iteratee [, context] ) 對象中的值中的每一項運行給定函數,如果該函數對每一項都返回 true,則返回 true,否則返回 false
- filter ( obj, iteratee [, context] ) 根據回調過濾數據
- find ( obj, iteratee [, context] ) 查找匹配第一條數據
- findKey ( obj, iteratee [, context] ) 查找匹配第一條數據的鍵
- map ( obj, iteratee [, context] ) 指定方法後的返回值組成的新數組
- objectMap ( obj, iteratee [, context] ) 指定方法後的返回值組成的新對象
- zipObject ( props, values ) 根據鍵數組、值數組對轉換為對象
- pick (obj, array) 根據 keys 過濾指定的屬性值 或者 接收一個判斷函數,返回一個新的對象
- omit (obj, array) 根據 keys 排除指定的屬性值 或者 接收一個判斷函數,返回一個新的對象
- copyWithin ( array, target, start [, end] ) 淺復制數組的一部分到同一數組中的另一個位置,數組大小不變
- sum ( obj, iteratee [, context] ) 求和函數,將數值相加
- mean ( obj, iteratee [, context] ) 求平均值函數
- reduce ( array, iteratee [, initialValue] ) 接收一個函數作為累加器,數組中的每個值(從左到右)開始合並,最終為一個值
- chunk ( array, size ) 將一個數組分割成大小的組。如果數組不能被平均分配,那麽最後一塊將是剩下的元素
- min ( arrb[, iteratee] ) 獲取最小值
- max ( arr [, iteratee] ) 獲取最大值
- commafy ( num [, options] ) 數值千分位分隔符、小數點
- 日期函數
- now ( ) 返回當前時間戳
- timestamp ( date[, format] ) 將日期轉為時間戳
- toStringDate ( str, format ) 任意格式字符串轉為日期
- toDateString ( date [, format, options] ) 日期格式化為任意格式字符串
- getWhatYear ( date, year [, month] ) 返回前幾年或後幾年的日期,可以指定年的最初時間(first)、年的最後時間(last)、年的月份(0~11),默認當前
- getWhatMonth ( date, month [, day] ) 返回前幾月或後幾月的日期,可以指定月初(first)、月末(last)、天數,默認當前
- getWhatWeek ( date, week [, day] ) 返回前幾周或後幾周的日期,可以指定星期幾(0~6),默認當前
- getWhatDay ( date, day [, mode] ) 返回前幾天或後幾天的日期,可以指定當天最初時間(first)、當天的最後時間(last)
- getDayOfYear ( date [, year] ) 返回某個年份的天數,可以指定前幾個年或後幾個年,默認當前
- getYearDay ( date ) 返回某個年份的第幾天
- getYearWeek ( date ) 返回某個年份的第幾周
- getMonthWeek ( date ) 返回某個月份的第幾周
- getDayOfMonth ( date [, month] ) 返回某個月份的天數,可以指定前幾個月或後幾個月,默認當前
- getDateDiff ( startDate, endDate [, rules] ) 返回兩個日期之間差距,如果結束日期小於開始日期 done 為 fasle
- 高級函數
- toArrayTree ( array, options ) 一個高性能的樹結構轉換函數,將一個帶層級的數據列表轉成樹結構
- toTreeArray ( array, options ) 將一個樹結構轉成數組列表
- findTree ( obj, iterate[, options, context] ) 從樹結構中查找匹配第一條數據的鍵、值、路徑
- eachTree ( obj, iterate[, options, context] ) 從樹結構中遍歷數據的鍵、值、路徑
- mapTree ( obj, iterate[, options, context] ) 從樹結構中指定方法後的返回值組成的新數組
- filterTree ( obj, iterate[, options, context] ) 從樹結構中根據回調過濾數據
- property ( path ) 返回一個獲取對象屬性的函數
- pluck ( array, key ) 獲取數組對象中某屬性值,返回一個數組
- invoke ( list, path, ...arguments ) 在list的每個元素上執行方法,任何傳遞的額外參數都會在調用方法的時候傳遞給它
- zip ( ) 將每個數組中相應位置的值合並在一起
- unzip ( arrays ) 與 zip 相反
- delay (callback, wait[, ...arguments]) 該方法和 setTimeout 一樣的效果,區別就是支持額外參數
- bind (callback, context[, ...arguments]) 創建一個綁定上下文的函數
- once (callback, context[, ...arguments]) 創建一個只能調用一次的函數,只會返回第一次執行後的結果
- after (count, callback, context) 創建一個函數, 調用次數超過 count 次之後執行回調並將所有結果記住後返回
- before (count, callback, context) 創建一個函數, 調用次數不超過 count 次之前執行回調並將所有結果記住後返回
- throttle (callback, wait[, options]) 創建一個策略函數,當被重復調用函數的時候,至少每隔多少秒毫秒調用一次該函數
- debounce (callback, wait[, options]) 創建一個防反跳策略函數,在函數最後一次調用多少毫秒之後才會再次執行,如果在期間內重復調用會重新計算延遲
- 瀏覽器函數
- serialize ( query ) 序列化查詢參數
- unserialize ( str ) 反轉序列化查詢參數
- browse ( ) 獲取瀏覽器信息
- locat ( ) 獲取地址欄信息
- parseUrl ( url ) 解析 URL 參數
- getBaseURL ( ) 獲取上下文路徑
- cookie ( name, value, options ) Cookie 操作函數
JS的數據類型判斷函數、數組對象結構處理、日期轉換函數,瀏覽器類型判斷函數合集