生成随机数
/**
* 生成随机数
* @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);
// ES6
Array.from(arguments);
const array = [...arguments];
// 常见的类数组
1、arguments
2、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/list
API将回归的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