//获取随机数
function getRandomNum(min, max) {
min = min == “” ? 0 : min;
max = max == “” ? 0 : max;
if (!isNaN(min) && !isNaN(max)) {
//最小值大于最大值
min > max ? [min, max] = [max, min] : “”;
return parseInt((max - min + 1) * Math.random() + min);
}
}
//深拷贝
function deepCopy(oldData, newData = []) {
for (let index in oldData) {
if (typeof oldData[index] == “object” && oldData[index] != null) {
newData[index] = oldData[index] instanceof Array ? [] : {};
newData[index] = deepCopy(oldData[index], newData[index]);
} else {
newData[index] = oldData[index];
}
}
return newData;
}
//多维数组转一维数组
function changArr(oldData, newData = []) {
oldData.forEach((item, index) => {
item instanceof Array ?
changArr(item, newData) :
newData.push(item)
});
return newData;
}
//本地存储v1.0
function setSession(key, data) {
let str = JSON.stringify(data);
sessionStorage.setItem(key, str);
};
function getSession(key) {
let data = sessionStorage.getItem(key);
return JSON.parse(data);
}
//本地存储v2.0
let setSession1 = (key, data) => sessionStorage.setItem(key, JSON.stringify(data));
let getSession1 = (key) => JSON.parse(sessionStorage.getItem(key));
//防抖(fn需要做的业务功能,waitTime防抖的时间)
function debounce(fn, waitTime) {
let timer = “”;
return function(num) {
if (timer) {
clearInterval(timer);
}
timer = setTimeout(function() {
fn(num);
}, waitTime);
}
}
//柯里化
//fn是要执行业务的函数
//fn的执行条件:
//当传入的实参个数大于等于fn的形参个数,则执行fn
function curry(fn, …arg1) {
return function(…arg2) {
let argAll = […arg1, …arg2];
if (argAll.length >= fn.length) { //实参数是否满足形参个数
fn(…argAll);
} else {
curry(fn, …argAll);
}
}
}