JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集
工具地址: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/bes-jstools@1.1.4/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]) 创建一个防反跳策略函数,在函数最后一次调用多少毫秒之后才会再次执行,如果在期间内重复调用会重新计算延迟
- 浏览器函数
JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集的更多相关文章
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...
- 【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更
java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; imp ...
- jQuery的类数组对象结构(转)
原文:http://www.imooc.com/code/3248 为什么是类数组对象呢? 很多人迷惑的jQuery为什么能像数组一样操作,通过对象get方法或者直接通过下标0索引就能转成DOM对象. ...
- jQuery的类数组对象结构
Query就是为了获取DOM.操作DOM而存在的 所以为了更方便这些操作,让节点与实例对象通过一个桥梁给关联起来,jQuery内部就采用了一种叫"类数组对象"的方式作为存储结构,所 ...
- js 不常用面试题 数组对象深度取值
function getPersonInfo(one, two, three) { console.log(one); console.log(two); console.log(three); } ...
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- HTMLCollection 对象详解,以及为什么循环获取的dom合集操作可能会出现下标不正确的情况?
有时候循环dom合集,然后操作其中的某些dom之后,发现下标不正确了 比如我们要删除一个dom合集的时候: var selectDom = document.getElementsByClassNam ...
- jQuery浏览器类型判断和分辨率判断
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> ...
- JS向后台传递json数组对象
var Obj = []; //一下代码可以循环插入 var returnObj = new Object();//创建一个对象 returnObj.id = “123”: returnObj.mon ...
随机推荐
- Vue定义全局过滤器filter
这里介绍的是多个过滤器一起添加到全局中 1.创建方法 首先src下新建plugin文件夹,用来存放插件. 在plugin文件夹内新建filters.js,编写方法(如隐藏手机号码等等...) /** ...
- Gatling 条件判断
在使用Gatling的过程中,当前置接口异常,无法获取到数据作为其他接口的请求参数室,接口是不能请求的.或者通过feeder获取的数据要区分不同的情况请求不同的接口.此时,使用gatling的判断语句 ...
- [转载]MySQL中int(11)最大长度是多少?
原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添 ...
- Spring5:Java Config
@Configuration @Bean @ComponentScan @ImportResource 使用Java的方式配置spring,完全不使用spring配置文件,交给java来做! 两个注解 ...
- mongoDB(一)——mongoDB安装部署和常用shell命令
1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...
- Scala学习系列(三)——入门与基础
本课程源码共享于 https://github.com/tree1123/learning-scala 首先,打开IDEA编辑器的SbtExampleProject项目,我们将在这个项目下进行练习 本 ...
- [Python进阶].pyc的那点事
1. 什么是 .pyc文件 .pyc文件 就是 Python的字节码(byte-compiled)文件..py文件运行时,python会自动将其编译成PyCodeObject并写入.pyc文件,再有p ...
- JDK12的五大重要新特性
文章目录 JDK12的五大重要新特性 引入JVM常量API 扩展了switch语句 支持Unicode 11.0 为日本Reiwa Era提供了方形字符支持 NumberFormat增加了对以紧凑格式 ...
- TCP链接的三次握手与四次断开
一直总觉得三次握手和四次断开,之前老师讲的有问题,经过自己再次琢磨,发现是的,老师讲的没毛病,这次也把自己的理解总结一下,让对这个知识模糊的小伙伴再换种思路去理解 首先看一下TCP三次握手发生了哪些: ...
- Error: Can't find Python executable "G:\Python27"
错误如题,node-gyp官网介绍不够详细,应设置python.exe的具体绝对路径,如下所示: npm config set python G:\Python27\python.exe 转载于:ht ...





