生成随机数
/*** 生成随机数* @param {String} len - 最大值* @returns {Number}*/function getRandowInt(len) {var num = parseInt(Math.random() * len + 1);return num;}
获取url后面的参数
/*** 获取URL中的参数值* @param {String} name - 参数key* @returns {String}*/function getUrlParameter(name) {var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if(r!=null)return unescape(r[2]); return null;};
类数组转数组
// 方式一、二Array.prototype.slice.call(arguments);Array.prototype.splice.call(arrayLike,0);// ES6Array.from(arguments);const array = [...arguments];// 常见的类数组1、arguments2、DOM对象document.getElementsByTagName('div')
获取多维数组的中的某一项
/*** @param {Array} array* @param {any}*/function getArrayItemByKey(array, key) {var result = [];function fn(array, key) {for(var i = 0; i < array.length; i++) {if (array[i].children && array[i].children.length) {if (array[i].id == key) {result.push(array[i]);} else {fn(array[i].children, key);}} else {if (array[i].id == key) {result.push(array[i]);}}}}fn(array, key)return result;}// 调用var temp = [{id: 1,name: 1,children: [{id: 1.1,name: 1.1,children: [{id: 1.11,name: 1.11,children: []},]},{id: 1.2,name: 1.2,children: []}]},{id: 2,name: 2,children: []}];console.log(getArrayItemByKey(temp, 1.11))console.log(getArrayItemByKey(temp, 1))
多维数组转一维数组
let _array: any = [];function deepCloneByRecursion(array, key) {for(var i = 0; i < array.length; i++) {_array.push(array[i].id);if (array[i].children && array[i].children.length) {deepCloneByRecursion(array[i].children, key);} else {// todo}}return array;}
实现深拷贝
/*** 方式一* @param {Object} obj* @returns {Objects}*/function deepCloneByJSON(obj) {var _obj = JSON.stringify(obj);return JSON.parse(_obj);}/*** 方式二* @param {Object} obj* @returns {Objects}*/function deepCloneByRecursion(obj) {var objClone = Array.isArray(obj) ? [] : {};if (obj && typeof obj === 'object') {for(var key in obj) {if (obj[key] && typeof obj[key] === 'object') {objClone[key] = deepCloneByRecursion(obj[key])} else {objClone[key] = obj[key];}}}return objClone;}
渲染函数
/*** @return {void}*/function render() {// @return {[object HTMLScriptElement]}var newNode = document.createElement("script");newNode.setAttribute('type', 'text/javascript');// 参考点var referenceNode = document.getElementsByTagName("script")[0];referenceNode.parentNode.insertBefore(newNode, referenceNode);// 直接插入document.head.appendChild(newNode);}
获取数据类型
/*** @param {Object} obj -任意对象* @returns {String}*/function getType(obj){let type = typeof obj;if (type !== "object") { // 先进行typeof判断,如果是基础数据类型,直接返回return type;}// 对于typeof返回结果是object的,再进行如下的判断,正则返回结果return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1');}
随机生成颜色
/*** @param {String | any} type -是否是rgb 默认是16进制* @returns {String}*/function getRandomColor(type) {var r = Math.floor(Math.random() * 256);var g = Math.floor(Math.random() * 256);var b = Math.floor(Math.random() * 256);var color = type || type === 'rgb' ? "rgb(" + r + ',' + g + ',' + b + ")" : '#' + Math.floor(Math.random() * 0xffffff).toString(16)return color;}
异常处理
var s = 1;try {if (s < 5) throw '小于5';} catch(err) {alert(err);}
获取随机图片
官网:https://picsum.photos/ 【美国】
Images from Unsplash:https://unsplash.com/ 【美国】
【获取高度和宽度的图片】https://picsum.photos/200/300正方形图片:https://picsum.photos/200静态随机存图像https://picsum.photos/seed/picsum/200/300【灰度】得到一个图像灰通过追加 ?grayscale 以结束的网址。https://picsum.photos/200/300?grayscale模糊得到一个模糊的图像通过追加 ?blur 以结束的网址。https://picsum.photos/200/300/?blur你可以调整数量的模糊通过提供数量之间的 1 和 10.https://picsum.photos/200/300/?blur=2【列表的图像】获得一个名单的图像使用的 /v2/list 终点。https://picsum.photos/v2/listAPI将回归的30个项目每页的默认。要求另一个网页,使用的 ?page 参数。改变项目的数量每页,使用的 ?limit 参数。https://picsum.photos/v2/list?page=2&limit=100【图像细节】获得信息是关于一个特定的图像使用的 /id/{id}/info 终点。https://picsum.photos/id/0/info你可以找出标识图像看 Picsum-ID 标题或 User Comment 领域在EXIF元数据。
js数字金额大写转换
var digitUppercase = function(n) {var fraction = ['角', '分'];var digit = ['零', '壹', '贰', '叁', '肆','伍', '陆', '柒', '捌', '玖'];var unit = [['元', '万', '亿'],['', '拾', '佰', '仟']];var head = n < 0 ? '欠' : '';n = Math.abs(n);var s = '';for (var i = 0; i < fraction.length; i++) {s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');}s = s || '整';n = Math.floor(n);for (var i = 0; i < unit[0].length && n > 0; i++) {var p = '';for (var j = 0; j < unit[1].length && n > 0; j++) {p = digit[n % 10] + unit[1][j] + p;n = Math.floor(n / 10);}s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;}return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');}// 调用console.log(digitUppercase(3));// 参考:https://www.jq22.com/webqd3030
