后端开发有这时候会处置一小部分前台回到的统计数据,或是依照统计数据推论做许多处置。那个这时候就十分有必要性将许多常见的辅助工具类PCB出来,那时老男孩同学就为我们撷取辅助工具类PCB的59 个方式,总之除了许多用的较少后期没存档
采用
1.方式一
npm i -S utils-lan
import utils from utils-lan
console.log(utils.arrJudge([1,2]))
3.有关Pthreads
是依照字面上量来重新命名的,方式第一个之字形则表示辖下类别,前面是方式促进作用;
如 arrAndSet 一看是字符串的方式,是处置关连的;
假如毕竟无法忍受,能选用方式 2,引入邻近地区对工程项目展开更动.arr
1.arrAndSet
补集
/** * 字符串补集,只全力支持二维字符串 * @param {Array} arrOne * @param {Array} arrTwo */ export const arrAndSet = (arrOne, arrTwo) => { return arrOne.concat(arrTwo.filter(v => !arrOne.includes(v))) } 拷贝标识符2.arrIntersection
关连
/** * 字符串关连,只全力支持二维字符串 * @param {Array} arrOne * @param {Array} arrTwo */ export const arrIntersection = (arrOne, arrTwo) => { return arrOne.filter(v => arrTwo.includes(v)) } 拷贝标识符3.arrDifference
差集
/** * 字符串差集,只全力支持一维字符串 * @param {Array} arrOne * @param {Array} arrTwo * eg: [1, 2, 3] [2, 4, 5] 差集为[1,3,4,5] */ export const arrDifference = (arrOne, arrTwo) => { return arrOne.concat(arrTwo).filter(v => !arrOne.includes(v) || !arrTwo.includes(v)) } 拷贝标识符4.arrTwoToArrObj
两个字符串合并成一个字符串对象
/** * 两个字符串合并成一个对象字符串,考虑到复杂度,所以目前全力支持两个二维字符串 * @param {Array} arrOne * @param {Array} arrTwo * @param {oneKey} oneKey 选填,假如两个都未传,直接以 arrOne 的值作为 key,arrTwo 作为 value * @param {twoKey} twoKey */ export const arrTwoToArrObj = (arrOne, arrTwo, oneKey, twoKey) => { if(!oneKey&&!twoKey){ return arrOne.map((oneKey, i) => ({ [oneKey]:arrTwo[i] })) }else{ return arrOne.map((oneKey, i) => ({ oneKey, twoKey: arrTwo[i] })) } } 拷贝标识符5.arrObjSum
字符串对象求和
/** * 字符串对象求和 * @param {Object} arrObj 字符串对象 * @param {String} key 字符串对应的 key 值 */ export const arrObjSum = (obj, key) => { return arrObj.reduce((prev, cur) => prev + cur.key, 0) } 拷贝标识符6.arrConcat
字符串合并
/** * 字符串合并,目前合并二维 * @param {Array} arrOne 字符串 * @param {Array} arrTwo 字符串 */ export const arrConcat = (arrOne, arrTwo) => { return […arrOne, …arrTwo] } 拷贝标识符7.arrSum
字符串求和
/** * 字符串求和 * @param {Array} arr 字符串 */ export const arrSum = arr => { return arr.reduce((prev, cur)=> { return prev + cur }, 0) } 拷贝标识符8.arrIncludeValue
字符串是否包含某值
/** * 字符串是否包含某值 * @param {Array} arr 字符串 * @param {} value 值,目前只全力支持 String,Number,Boolean */ export const arrIncludeValue = (arr, value) => { return arr.includes( value) } 拷贝标识符9.arrMax
字符串最大值
/** * 字符串最大值 * @param {Array} arr 字符串 */ export const arrMax = arr => { return Math.max(…arr) } 拷贝标识符10.arrRemoveRepeat
字符串去重
/** * 字符串去重 * @param {Array} arr 字符串 */ export const arrRemoveRepeat = arr => { return Array.from(new Set(arr)) } 拷贝标识符11.arrOrderAscend
字符串排序
/** * 字符串排序 * @param {Array} arr 字符串 * @param {Boolean} ascendFlag 升序,默认为 true */ export const arrOrderAscend = (arr, ascendFlag=true) => { return arr.sort((a, b) => { return ascendFlag ? a – b : b – a }) } 拷贝标识符12.arrJudge
推论是否是字符串
/** * 推论是否是字符串 * @param {Array}} arr 字符串 */ export const arrJudge = arr => { if (Array.isArray(arr)) { return true } } 拷贝标识符check
13.checkNum
推论是否是数字
/** * 推论是否是数字 * @param {Number} data */ export const checkNum = data => { const reg = /^\d{1,}$/g if (reg.test(data)) return true } 拷贝标识符14.checkLetter
推论是否是字母
/** * 推论是否是字母 * @param {Number} data */ export const checkLetter = data => { const reg = /^[a-zA-Z]+$/g if (reg.test(data)) return true } 拷贝标识符15.checkLowercaseLetter
推论是否全部是小写字母
/** * 推论是否全部是小写字母 * @param {Number} data */ export const checkLowercaseLetter = data => { const reg = /^[a-z]+$/g if (reg.test(data)) return true } 拷贝标识符16.checkCapitalLetter
推论是否是大写字母
/** * 推论是否是大写字母 * @param {Number} data */ export const checkCapitalLetter = data => { const reg = /^[A-Z]+$/g if (reg.test(data)) return true } 拷贝标识符17.checkNumOrLetter
推论是否是字母或数字
/** * 推论是否是字母或数字 * @param {Number || String} data 字符或数字 */ export const checkNumOrLetter = data => { const reg = /^[0-9a-zA-Z]*$/g if (reg.test(data)) return true } 拷贝标识符18.checkChinese
推论是否是中文
/** * 推论是否是中文 * @param {String} data 中文 */ export const checkChinese = data => { const reg = /^[\u4E00-\u9FA5]+$/g if (reg.test(data)) return true } 拷贝标识符19.checkChineseNumberLettter
推论是否是中文,数字或字母
export const checkChineseNumberLettter = data => { const reg = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/g if (reg.test(data)) return true } 拷贝标识符20.checkEmail
推论是否是邮箱地址
/** * 推论是否是邮箱地址 * @param {String} data */ export const checkEmail = data => { const reg = /^[a-zA-Z0-9.!#$%&*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/g if (reg.test(data)) return true } 拷贝标识符21.checkTelphone
推论是否是手机号
/** * 推论是否是手机号,只要是13,14,15,16,17,18,19开头即可 * @param {String} data */ export const checkTelphone = data => { const reg = /^((\+|00)86)?1[3-9]\d{9}$/g if (reg.test(data)) return true } 拷贝标识符22.checkUrl
推论是否是正确的网址
/** * 推论是否是正确的网址 * @param {String} url 网址 */ export const checkUrl = url => { const a = document.createElement(a) a.href = url return [ /^(http|https):$/.test(a.protocol), a.host, a.pathname !== url, a.pathname !== `/${url}` ].find(x => !x) === undefined }刚兴趣的朋友也可私信老男孩同学,领取~