前言:工做的过程当中总结的干货,会持续更新哦。。。数组
1.random()bash
/*
* @name: random
* @description: 产生随机整数,包含下限值,包括上限值
* @param {Number} lower 下限
* @param {Number} upper 上限
* @return {Number} 返回在下限到上限之间的一个随机整数
*/
export function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower+1)) + lower;
}
复制代码
/*
* @name: randomColor
* 产生一个随机的rgb颜色
* @return {String} 返回颜色rgb值字符串内容,如:rgb(201, 57, 96)
*/
export function randomColor() {
// 随机生成 rgb 值,每一个颜色值在 0 - 255 之间
var r = random(0, 256),
g = random(0, 256),
b = random(0, 256);
// 链接字符串的结果
var result = "rgb("+ r +","+ g +","+ b +")";
// 返回结果
return result;
}
复制代码
/*
* @name: getFormatCode
* @description: 根据Value格式化为带有换行、空格格式的HTML代码
* @param: strValue {String} 须要转换的值
* @return: {String}转换后的HTML代码
* @example getFormatCode("测\r\n\s试") => “测<br/> 试”
*/
export function getFormatCode(strValue) {
return strValue.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ')
}
复制代码
/*
* @name: removal
* @description: 数组中是对象,根据key去重
* @param: arr {Array} 须要去重的数组
* key {Array} 惟一的字段
* @return: {Array} 去重后的代码
* @example:removal([{id: 1}, {id: 2}, {id: 1}], "id") => [{id: 1}, {id: 2}]
*/
export function removal(arr, key) {
let hash = {};
arr = arr.reduce((preVal, curVal) => {
hash[curVal[key]] ? '' : hash[curVal[key]] = true && preVal.push(curVal);
return preVal
}, [])
}
复制代码
/*
* @name: methodGetByteLen
* @description: 超出多少个字(中文1个,2个英文算1个)显示省略号
* @param: str {String} 须要转换的字符串
* num {Number} 超出多少个
* @return: {String} 去重后的代码
* @example:removal('哈haha哈哈哈', 2) => '哈ha...'
*/
export function methodGetByteLen(str, len) {
let status = true
if (!str) return ['-', status]
let templen = 0
for (let i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 255) {
templen += 2
} else {
templen++
}
if (templen >= len) {
status = false
return [str.substring(0, i) + '...', status]
}
}
return [str, status]
}
复制代码
/*
* @name: getFloatStr
* @description: 数字自动补全并保留2位小数,将传入数据转换为字符串,并清除字符串中非数字与.的字符,按数字格式补全字符串
* @param:num {String,Number} 须要转换的值
* @return: {String} 转换后数字
* @example: getFloatStr("123.1") => 123.10
*/
export function getFloatStr(value) {
if (isNaN(value)) {
return value
} else {
var value = Math.round(parseFloat(value) * 100) / 100
var xsd = value.toString().split('.')
if (xsd.length == 1) {
value = value.toString() + '.00'
return value.toString()
}
if (xsd.length > 1) {
if (xsd[1].length < 2) {
value = value.toString() + '0'
}
return value.toString()
}
}
}
复制代码
/*
* @name: milliFormat
* @description: 千位符并保留2位小数,将传入数据转换为字符串,并清除字符串中非数字与.的字符,按数字格式补全字符串
* @param: {Number,String} 须要转换的值
* @return: {String} 转换后数字
* @example: milliFormat("1023.1") => 1,023.10
*/
export function milliFormat(s) {
s = String(s)
s = s.replace(/^(\d*)$/, '$1.')
s = (s + '00').replace(/(\d*\.\d\d)\d*/, '$1')
s = s.replace('.', ',')
var re = /(\d)(\d{3},)/
while (re.test(s)) {
s = s.replace(re, '$1,$2')
}
s = s.replace(/,(\d\d)$/, '.$1')
return s.replace(/^\./, '0.')
}
复制代码
/*
* @name: commafyback
* @description: 去千位符
* @param: str {String} 须要转换的值
* @return: {String} 转换后数字
* @example: commafyback("102,123.18") => 102123.18
*/
export function commafyback(str) {
var x = String(str).split(',')
return x.join('')
}
复制代码
/*
* @name: timestampToTime
* @description: 时间戳转化日期格式
* @param:timestamp {Number} 时间戳
* flag {Boolean} 默认值true,时间戳为10位传true,时间戳为13位传flase
* @return: {String} 转换后数字
* @example: timestampToTime(1403058804) => 2014-06-18 10:33:24
*/
export function timestampToTime(timestamp, flag=true) {
//时间戳为10位需*1000,时间戳为13位的话不需乘1000
let date = flag ? new Date(timestamp * 1000) : new Date(timestamp);
Y = date.getFullYear() + '-';
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
D = date.getDate() + ' ';
h = date.getHours() + ':';
m = date.getMinutes() + ':';
s = date.getSeconds();
return Y+M+D+h+m+s;
}
复制代码
结尾:若是大家有什么值得推荐的经常使用函数,欢迎在评论中补充,能够收纳在本文中。固然也能够直接使用 lodash 这些比较流行的函数式工具库,在这里仅作学习参考使用。dom