npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

k-jstoollib

v1.0.5

Published

KY前端工具方法库。使用方式 npm install k-jstoollib

Downloads

9

Readme

k-jstoollib

金融业务工具方法库

目的:开发中常用的工具函数, 轻松提高业务研发效率.。

安装使用

  1. 使用npm安装

npm:

$ npm i k-jstoollib

webpack、RequireJS、SeaJS等

// 完整引入
import jstoollib from 'k-jstoollib'

// 挂载到全局
Vue.prototype.$jstoollib = jstoollib;
// 使用
this.$jstoollib.xxx()

推荐使用方法

你真的不需要完整引入所有函数,所以只引入需要使用的方法即可。

import { xxx } from 'k-jstoollib'

// 使用,直接调用方法
方法名()

API文档

Base

  • getType - 用于获取变量的数据类型
// obj 变量
getType(obj)
  • isString - 是否字符串
// o 变量参数
isString(o)
  • isNumber - 是否数字
// o 变量参数
isNumber(o)
  • isBoolean - 是否Boolean
// o  变量参数
isBoolean(o)
  • isFunction - 是否函数
// o  变量参数
isFunction (o)
  • isNull - 是否为Null
// o  变量参数
isNull (o)
  • isUndefined - 是否为undefined
// o  变量参数
isUndefined (o)

Array

  • arrayToTree - 一维数组转换为树形数据数组格式
/**
 * @param arr 原始数据
 * @param id 唯一标识
 * @param pid 父级唯一标识
 * @param children 子集的key
*/
arrayToTree(arr, id = 'id', pid = 'pid', children = 'children')
  • treeToArray - 将树形数据数组转换为一维数组
/**
 * @param tree 数据
 * @param children 子集的key值
*/
treeToArray(tree, children = 'children')
  • arrayIntersection - 获取两个数组的交集
// arrA, arrB 数组
arrayIntersection(arrA, arrB)
  • arrayUnion - 获取两个数组的并集
// arrA, arrB 数组
arrayUnion(arrA, arrB)
  • arraySubtraction - 获取两个数组的差集
// arrA, arrB 数组
arraySubtraction (arrA, arrB)
  • getAnItemInArray - 获取数组中某一属性的集合
/**
 * 获取数组中该属性的集合
 * @param data 原始数据
 * @param key 要获取的属性key
 * @returns {*}
 */
getAnItemInArray(data, key)
  • getSelectAllItem - 根据选中的数据从原始数组获取对应的其他属性
/**
 * 根据选中的数据从原始数组获取对应的其他属性
 * @param {array} selArr 为选中的数据code
 * @param {array} arr 为下拉框绑定的数据
 * @param {string} code  selArr中的元素 与 arr中对应的属性
 * @param label label没有传,返回选中的数据所有属性数组,传了label,只获取label属性的数组
 * @returns [object]
 */
getSelectAllItem(selArr, arr, code, label) 
  • arrIncludeValue - 数组是否包含某值
/**
 * 数组是否包含某值
 * @param {Array} arr 数组
 * @param value 值,目前只支持 String,Number,Boolean
 */
arrIncludeValue(arr, value)
  • arrRemoveRepeat - 普通数组去重
// arr 数组
arrRemoveRepeat(arr)
  • objArrRemoveRepeat - 对象数组去重
/**
 * 对象数组去重
 * @param array 要去重的数组
 * @param key 要去重的对象属性值
 */
objArrRemoveRepeat (array, key)
  • arrSort- 数组排序
/**
 * 数组排序
 * @param {Array} arr  数组
 * @param {Boolean} ascendFlag   升序,默认为 true
 */
arrSort(arr, ascendFlag = true) 
  • isArrayEqual - 判断两个数组是否相等
// arrA, arrB 数组
isArrayEqual(arrA, arrB) 
  • maxArray - 获取数组中的最大值
// arr 数组
maxArray(arr)
  • minArray - 获取数组中的最小值
// arr 数组
minArray(arr)
  • arrayAverage- 计算数组平均值
// arr 数组
arrayAverage(arr)
  • filterspecifiedVal - 排除多个指定值返回筛选之后的数组
/**
 * 排除多个指定值返回筛选之后的数组
 * @param arr 原数据数组
 * @param excludeValues  包含指定值的数组
 * @returns {*}
 */
filterspecifiedVal(arr, excludeValues)
  • findIndexInArr - 返回数组中指定元素的下标
/**
 * 返回数组中指定元素的下标
 * @param {Array }arr 数组
 * @param data 要判断的数据
 * @param code 对象数组需要传要查找数据对应的key值
 */
findIndexInArr (arr, data, code) 
  • getObjectByOnlyCode, // 根据唯一标识获取所属对象
/**
 * 根据唯一标识获取所属对象
 * @param nodes 原始数据
 * @param code 唯一标识
 * @param {string} codeName 唯一标识的keyName
 * @returns {*|{}}
 */
getObjectByOnlyCode(nodes, code, codeName = 'value')
  • modifyKeyValue - 遍历树-修改树内指定节点kv
/**
 * @param objAry 数据
 * @param key 键值
 * @param newkey 新键值
 */
modifyKeyValue(objAry, key, newkey)

Cookie

String

  • cutString - 截取指定字节的字符串
/**
 * 截取指定字节的字符串
 * @param str 要截取的字符穿
 * @param len 要截取的长度,根据字节计算
 * @param suffix 截取前len个后,其余的字符的替换字符,一般用“…”, 非必传
 * @returns {*}
 */
cutString(str,len,suffix)
  • substring - 截取指定长度的字符串
/**
 *  截取指定长度的字符串
 * @param str 字符串
 * @param start 起始索引
 * @param length 截取长度
 * @returns {string}
 */
subString(str, start, length) 
  • beforeStrSub - 截取指定字符之前的字符串
/**
 * @param str
 * @param char
 */
beforeStrSub(str, char)
  • afterStrSub - 截取指定字符之后的字符串
/**
 * @param str
 * @param char
 */
afterStrSub(str, char)
  • transFormat - 可以替换任意数字和符号
/**
 * 可以替换任意数字和符号
 * @param {string} str 表示将要替换的字符串
 * @param {string} l 表示将要替换的字符
 * @param {string} r 表示被替换的字符
 */
transFormat (str, l, r) 
  • insertStr - 在字符串指定位置插入字符
/**
 * @param character 原字符串
 * @param site 要插入的字符的位置
 * @param newStr 想要插入的字符
 */
insertStr(character, site, newStr)
  • keyCharacterMap - 字符串反转处理分割
/**
 * 字符串反转处理分割
 * @param str 原字符串
 * @param under 根据什么字符处理
 * @param event 使用什么字符把处理结果分割
 */
keyCharacterMap (str,under,event)
  • judgeStrHave - 查找指定的字符或者字符串是否存在
/**
 * str 将要查找的字符串
 * queryStr 在字符串中查找的字符或字符串片段
 * 如果在字符串中有这个字符或者字符串,返回1,否则返回-1
 */
judgeStrHave(str,queryStr)
  • strOmit - 字符串按照长度显示省略号
/**
 * 字符串省略,超出部分显示 ’...‘
 * @param {*} str 字符串
 * @param {*} n 保留字符0到n
 */
strOmit(str, n)

Function

  • debounce - 用于防抖动,防止函数在短时间内连续多次调用
/**
 * 用于防抖动,防止函数在短时间内连续多次调用。
 * @param func
 * @param wait 时间
 * @returns {(function(): void)|*}
 */
debounce(func, wait)
  • throttle - 用于节流,防止函数在短时间内频繁调用
/**
 * 用于节流,防止函数在短时间内频繁调用
 * @param func
 * @param wait
 * @returns {(function(): void)|*}
 */
throttle(func, wait)
  • delay- 延时执行
  • randomInt - 用于生成指定范围内的随机整数
// min max 生成指定随机数的范围
randomInt(min, max)
  • randomStr - 生成指定个数的随机字符串
// n  字符串长度, str: 组成字符串单词
randomStr(n, str)
  • randomHexColorCode - 随机十六禁止颜色
randomHexColorCode()

Date

  • formatDate - 格式化日期:yyyy-MM-dd
formatDate(date)
  • formatOtherDate - 根据需要的格式 转换日期格式
// formateType: yy-mm-dd、yymmdd 等
formatOtherDate(dateS, formateType)
  • getPreDate - 获取T-1的日期
getPreDate()
  • getTheDatesOfWeek - 获取输入日期所在周的开始日期和结束日期
/*
* 获取输入日期所在周的开始日期和结束日期
* @param date 需要判断的日期,不传默认查询当天
*/
getTheDatesOfWeek(date) 
  • getMonthEndDay - 当前月份的最后一天
getMonthEndDay()
  • getNowDayOfWeek - 获取输入的日期对应的星期
/**
 * 获取输入的日期对应的星期
 * @param data String  不传默认查当天
 */
getNowDayOfWeek(data)
  • getDaysBetween - 判断输入的两个 日期间隔几天
/**
 * 判断输入的两个 日期间隔几天
 * @param startDate  开始日期 yyyy-MM-dd
 * @param enDate  结束日期 yyyy-MM-dd
 * @returns {number} 两日期相差的天数
 */
getDaysBetween (startDate, enDate)
  • getWeekOnMonth - 获取输入的日期属于当月的第几周
/**
 * 获取输入的日期属于当月的第几周
 * @param date 输入的日期 不传默认查当天
 */
getWeekOnMonth(date)
  • getWeekNumOnYear - 获取输入的日期属于当年的第几周
/**
 * 获取输入的日期属于当年的第几周
 * @param date 不传默认查当天
 * @returns {number}
 */
getWeekNumOnYear(date)
  • getWeekRange - 获取某个日期所在周的日期范围
/**
 * 获取某个日期所在周的日期范围
 * @param d 注意日期格式 不传查当天
 * @returns {Date[]}
 */
getWeekRange(d)
  • getDayNumOfYear - 获取某个日期是当年中的第几天
/**
 * 获取某个日期是当年中的第几天
 * @param val
 * @returns {number}  必传
 */
getDayNumOfYear(val)
  • getMonthRange - 获取某个日期所在月的日期范围
/**
 * 获取某个日期所在月的日期范围
 * @param d 注意日期格式 不传查当天
 * @returns {Date[]}
 */
getMonthRange(d)
  • getQuarterRange - 获取某个日期所在季度的日期范围
/**
 * 获取某个日期所在季度的日期范围
 * @param d  日期为 yy-mm-nn
 * @returns {Date[]}
 */
getQuarterRange(d)
  • pickerOptionslimit - element 日期选择组件 限制日期选择
/*
* element 日期选择组件 限制日期选择
* @param type: 1=> T-1
* @param type: 2=>T
* @param type:3=>当前month
*/
pickerOptionslimit(type)
  • getNDaysAroundDate - 获取指定时间N天前/后的日期
/**
 * @param date 日期,不传查当天
 * @param n 默认为0
 */
getNDaysAroundDate(date, n)
  • isLeapYear - 判断是否为闰年
// year 年
isLeapYear(year)
  • getHoursBetweenDates - 获取两个日期之间的小时数
// date1 date2  两个日期
getHoursBetweenDates(date1, date2)
  • isDateInRange - 判断一个日期是否在指定日期范围内
/**
 * 判断一个日期是否在指定日期范围内
 * @param date 输入的日期
 * @param start 日期范围的开始日期
 * @param end 日期范围的结束日期
 * @returns {boolean}
 */
isDateInRange(date, start, end)
  • isWeekday - 判断某个日期是否为工作日
// date 日期
isWeekday(date)
  • getNextWeekday - 计算某个日期的下一个工作日
/**
 * 计算某个日期的下一个工作日(周一至周五)
 * @param date
 * @returns {Date}
 */
getNextWeekday(date)
  • getlastFirday - 获取相对于今天,上周五的日期
getlastFirday()
  • getLastYearYesterDay - 相对于今天t-1日,获取N年前的日期
// 获取n年前的t-1 日
getLastYearYesterDay(yearNum = 1) 
  • getDatesNDaysAgo - 根据当前日期,获取n天前的日期
/**
 * 根据当前日期,获取n天前的日期
 * @param n
 * @returns {Date}
 */
getDatesNDaysAgo(n)
  • getLastYearEndDate - 获取去年年末日期
getLastYearEndDate()
  • getDaysByTheMonth - 判断输入的月份当月共多少天
/**
 * 判断输入的月份当月共多少天
 * @param {string} year 年份
 * @param {string} month 月份
 */
getDaysByTheMonth(year, month)
  • getRecentMonth - 获取最近N月的日期
// n {number} 数值
getRecentDay(n)
  • getRecentDay - 获取最近N天的日期
// n {number} 数值
getRecentMonth(n)

Object

Regexp

  • isPhoneNumber - 判断是否为有效的手机号码
/**
 * @param phone
 * @returns {boolean}
 */
isPhoneNumber(phone)
  • isEmail - 判断是否为有效的邮箱地址
/**
 * @param email
 * @returns {boolean}
 */
isEmail(email)
  • isUrl - 判断是否为有效的 URL 地址
/**
 * @param url
 * @returns {boolean}
 */
isUrl(url)
  • isIDCard - 判断是否为有效的身份证号码
/**
 * @param idCard
 * @returns {boolean}
 */
isIDCard(idCard)
  • isDate - 判断是否为有效的日期格式
/**
 * 判断是否为有效的日期格式:  yy-mm-dd
 * @param dateString
 * @returns {boolean}
 */
isDate(dateString)
  • isIP - 判断是否为有效的 IP 地址
/**
 *  判断是否为有效的 IP 地址:
 * @param ipAddress
 * @returns {boolean}
 */
isIP(ipAddress)
  • checkLetter - 判断是否是字母
/**
 *  判断是否是字母
 * @param {string} data
 */
checkLetter(data)
  • ischinese - 校验是否中文组成
/**
 * @param str
 * @returns {boolean}
 */
ischinese(str)

FormatDisplay

  • _toLittleCamel - 字符串:'-'连接命名转换成小驼峰命名
/**
 * 字符串:'-'连接命名转换成小驼峰命名
 * @param str
 * @returns {string|*}
 */
 _toLittleCamel(str)
  • _toBigCamel - 字符串:'-'连接命名转换成大驼峰命名
/**
 * 字符串:'-'连接命名转换成大驼峰命名
 * @param str
 * @returns {string|*}
 * @private
 */
_toBigCamel(str)
  • camelTo_ - 字符串:驼峰命名转换成'-'连接命名 /**
  • 字符串:驼峰命名转换成'-'连接命名
  • @param str
  • @returns {string}
  • @private */

camelTo_(str)
  • strTrim - 去除字符串中的空格
/**
 * JS去除字符串中的空格
 * @param str
 * @param type 1-所有空格 2-前后空格 3-前空格 4-后空格  默认2
 * @returns {string}
 */
strTrim(str, type)
  • formatMobile - 手机号格式化显示
/**
 * 手机号格式化显示
 * @param mobile String
 * @returns {string}
 */
formatMobile(mobile)
  • keepDecimalNoRound - 保留n位小数,不够补0, 不四舍五入
/**
 * 将number保留bitNum位小数,不够补0, 非四舍五入
 * @param number 数据
 * @param bit 小数点位数 默认保留两位小数
 * @returns {string|number}  返回值为 String,可使用parseFloat转换为Number
 */
keepDecimalNoRound(number, bit)
  • keepDecimalround - 保留n位小数,不够补0, 四舍五入
/**
 * 将value保留bit位小数,不够补0, 四舍五入
 * @param number 数据
 * @param bit 小数点位数
 * @returns {string} 返回的结果为字符串 可使用parseFloat转换为Number
 */
keepDecimalround(number, bit) 
  • titleCaseStr - 字符串首字母大写
/**
 * 字符串首字母大写
 * @param {string} 参数为字符串 解构为数组
 * @returns {string}
 */
titleCaseStr(str)
  • titleLowercaseStr - 字符串首字母小写
/**
 * 首字母小写
 * @param {string}参数为字符串 解构为数组
 * @returns {string}
 */
titleLowercaseStr(str)
  • capitalizeEveryWord - 字符串由空格间隔的每个单词首字母大写
/**
 * 字符串由空格间隔的每个单词首字母大写
 * @param str
 */
capitalizeEveryWord(str)
  • toPoint - 百分数转小数
/**
 * 百分数转小数
 * @param {string} percent  百分数
 * @param {number} places 小数保留几位小数 默认保留两位小数
 * @returns {number}
 */
 toPoint(percent, places)
  • toPercent - 小数转百分数
/**
 * 小数转百分数
 * @param {number} point 小数
 * @param {number} places 百分数保留几位小数 默认不保留小数
 * @returns {string}
 */
toPercent(point, places)

金额转换

  • moneyFormat - 金额千分位转换
/**
 * 金额千分位转换
 * @param {Number} number:要格式化的数字
 * @param {number} decimals:保留几位小数
 * @param {string} dec_point:小数点符号
 * @param {string} thousands_sep:千分位符号
 */
moneyFormat(number, decimals, dec_point, thousands_sep)
  • convertCurrency - 大写金额转换
/**
 *
 * @param money 金额
 * @returns {string} 返回字符串大写金额
 */
convertCurrency(money)
  • delThousands - 金额去除千分位

/**
 * @description 去除千分位
 *@param{Object}num
 */
 delThousands(num)
  • toCurrency - 简单的货币单位转换
/**
 * 简单的货币单位转换
 * @param n 金额
 * @param curr 单位
 * @param LanguageFormat 语言
 * @returns {string}
 */
 例如:
 /*
toCurrency(123456.789, 'EUR'); // €123,456.79
toCurrency(123456.789, 'USD', 'en-us'); // $123,456.79
toCurrency(123456.789, 'USD', 'fa'); // ۱۲۳٬۴۵۶٫۷۹
toCurrency(322342436423.2435, 'JPY'); // ¥322,342,436,423
*/
toCurrency = (n, curr)
  • unitConversion - 单位转换方法
/**
 * @description: 单位转换方法
 * @param {*} moneyV       金额
 * @param {*} thousandthV  是否需要千分位转换,默认为 true
 * @param {*} unitV        单位长度,如果传入该参数,则不会根据金额长度计算单位长度,而是直接使用传入的单位长度作为单位长度
 * @param {*} fixedV       小数位数,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的小数位数,默认为 [2, 2, 4, 4, 4]
 * @param {*} unitNameV    单位名称,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的单位名称,默认为 ['元', '万元', '亿元', '万亿元', '千万亿']
 * @return {*} String
 */

/**
 *  * 使用示例:
 * utils.unitConversion(123456789.123456789) => 12,3456.7891万元
 * utils.unitConversion(12345678912345.6789) => 123,4567.8912亿元
 * utils.unitConversion(123456789123456789.123456789) => 123,4567.8912万亿元
 *
 * object 参数使用示例:
 * utils.unitConversion({
 *  money: 123456789.123456789,
 *  thousandth: true,
 *  unit: 4,
 *  fixed: [2, 2, 4, 4, 4],
 *  unitName: ['元', '万元', '亿元', '万亿元', '千万亿']
 * }) => 12,3456.7891万元
 */
unitConversion(moneyV, thousandthV, unitV, fixedV, unitNameV) 

浮点数运算

  • floatPointAdd - 浮点数运算 加法

  • floatPointSub - 浮点数运算 减法

  • floatPointMul - 浮点数运算 乘法

  • floatPointAddDiv - 浮点数运算 除法 用来得到精确的除法结果

base64

// 1.加密
// var str = '124中文内容';
// var base = new Base64();
// var result = base.encode(str);
// //document.write(result);

// //2.解密
// var result2 = base.decode(result);
// document.write(result2);

浏览器操作

  • scrollToTop - 滚动到页面顶部
scrollToTop ()
  • scrollToBottom - 滚动到页面底部
scrollToBottom ()
  • toFullScreen - 打开浏览器全屏
toFullScreen () 
  • exitFullscreen - 退出浏览器全屏
exitFullscreen()
  • openWindow - 打开浏览器小窗口
/**
 * @param url 浏览器地址
 * @param title 打开的地址标题
 * @param w 窗口宽
 * @param h 窗口高
 */
openWindow (url, title, w, h)

echatrs 图表

  • downChartPng - echarts图片导出