wangs-utils

1.1.2 • Public • Published

项目中常用方法归类(持续更新...):

安装

npm i wangs-utils

使用

import * as wUtils from 'wangs-utils/dist/wang_utils';

源码地址

传送::https://github.com/wangruibin666/wang-utils

1.日期和时间戳

1.根据时间戳获取时间格式:getDate(timestamp,format)
    /*
     timestamp: 时间戳,默认当前时间戳
     format: 期望的日期格式,精确到:'year' || 'month' || 'day' || 'hour' || 'minute' || 'second' 默认到秒
    */
	getDate() //=> "2021-07-02 09:27:39"
2.时间戳相差间隔:stampInterval (stamp1, stamp2)
 /**
 * 
 * @param {number|string} stamp1 时间戳
 * @param {number|string} stamp2 时间戳
 * @returns {string} 俩个时间戳的间隔
 */

3.日期对比大小:compareDate(d1,d2)
	var current_time = "2007-2-2 7:30";
    var stop_time = "2007-1-31 8:30";
    console.log(compareDate(current_time,stop_time)); //=>true

4.获得据当天n天的日期:dateByday(num, f)
 /**
 * param{number} num 距离当日num天的日期
 * param{number} f 日期分隔符 '-'、'/'...
 * */

2.对数字的处理

1. 金额格式:formatAmount(amount)
	formatAmount(1000) // => 1,000.00 


2. 数字格式:formatFloat(num,n,flag)
    /*
     num: 需要处理的数字
     n: 保留的位数
     flag:默认四舍五入,可选'ceil'和'floor'
    */

    formatFloat(2.1,2) //=> 2.10

3.俩个大数字相加:sumBigNumber(a,b)
 /*
  @param {string} a 
  @param {string} b
 */

4. 范围内的随机数:random (min, max)

5. 将阿拉伯数字翻译成中文的大写数字:numToChinese(num)
	numToChinese(1) //=> '一'

6. 将数字金额转换为大写金额:amountToChinese(num)
 	amountToChinese(1.1) //=> '壹元壹角'

3.优化(防抖,节流)

1.防抖: debounce(callback, delay)
 /*
  如果短时间内大量触发同一事件,只会执行一次函数
  callback: 需要处理的回调函数
  delay:期限值
  如果在delay内没有再次触发滚动事件,那么就执行函数
  如果在delay内再次触发滚动事件,那么当前的计时取消,重新开始计时
  
 */

2.节流: throttle(callback, delay)
 /*
  如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效
  callback: 需要处理的回调函数
  delay:间隔值
 */

4.对象的操作

1.对比俩个对象是否相等:compareObj(x, y)
 compareObj({a:1},{a:1}) //=> true

2.对象深拷贝:deepClone(obj)

5.数组的操作

1.数组平铺(降维):deepFlatten(arr)

2.树形数据:
	1>对树形数据进行提取,比如级联选择器,需要获取每一级的某些数据
		extractTree(arrs,childs,attrArr)
		/*
		 @param {Array} arrs 树形数据
         @param {string} childs 树形数据子数据的属性名,常用'children'
         @param {Array} attrArr 需要获取的公共属性数组
		*/

	2>对一维的数据,重组成树形数据结构
		 makeTree(data,pid,child)
		/**
         * 
         * @param {Array} data 
         * @param {string} pid 子树找父级的标识
         * @param {string} child 自定义子树字段名称
         * @returns 
         */

3.对比俩个数组是否相等
  compareArr(arr1, arr2)
  /**
  * 判断俩个数组是否相等,元素位置也必须相等
  * @param {Array} arr1 
  * @param {Array} arr2 
  * @returns {Boolean}
 */

4.数组的深拷贝:deepClone(arr)

5.数组去重:unique(arr)

6.由对象组成的数组,按属性去重:uniqueByAttr(array, key)
 /**
 * 
 * @param {Array} array 
 * @param {string} key 对象的属性名
 * @returns {Array}
 */

6.数据类型

1. 判断传入数据的数据类型: type(data)
	/*
	 @params{*} data
	 @returns: 'bool' | 'number' | 'string' | 'undefined' | 'null' | 'array' | 'object' | 'function' | 'sorry! unrecognized'
	*/
	type(1) //=>'number'
	type('1') //=>'string'
	type({}) //=> 'object'
	type(()=>{}) //=> 'function'

7.字符串

1.去除空格: trim(str, type)
 /**
 * 去除空格
 * @param {str}
 * @param {type} 
 *    type: 1-所有空格 2-前后空格 3-前空格 4-后空格
 * @return {String}
 */

2.大小写:changeCase(str, type)
 /**
 * @param {str} 
 * @param {type}
 *    type: 1:首字母大写 2:首页母小写 3:大小写转换 4:全部大写 5:全部小写
 * @return {String}
 */

8.浏览器

1. 获取浏览器的类型:browserType() //=> 'Opera' || 'Safari'...

2. 获得url中的query并返回对象: getQuery(url)

3. 封装storage
    1>设置cookie: setCookie(name, value, day) // name: 名称, value: 值, day: 过期时间

	2>获取cookie:getCookie(name)

	3>删除cookie: removeCookie(name)

	4>设置localStorage: setLocal(key, val)

    5>获取localStorage: getLocal(key)

	6>移除localStorage: removeLocal(key)

	7>移除所有localStorage: clearLocal()

	8>设置sessionStorage: setSession(key, val)

    9>获取sessionStorage:	getSession(key)

	10>移除sessionStorage: removeSession(key)

	11>移除所有sessionStorage: clearSession()

Package Sidebar

Install

npm i wangs-utils

Weekly Downloads

1

Version

1.1.2

License

ISC

Unpacked Size

28.9 kB

Total Files

5

Last publish

Collaborators

  • coder_wang