1.得到两个数之前的值,且是整数,包含这两个数
function getRandomNumber(max,min){ // max是最大值
return Math.floor(Math.random() * (max-min+1) + min);
}
2.打乱一个已有数组的顺序
const textArr = [1,2,3,4,5]
function shuffle(arr){
let _arr = arr.slice( ) // 为了不影响原来数组的内容
for(var i=0;i<_arr.length;i++){
const yuanArr = _arr[i];
const changeArr = getRandomNumber(0,i) // 用上面的第一个常用函数方法,获取一个0-i的随便哪个的值;
_arr[i] = _arr[changeArr] // 把当前值换成这个随便哪个索引的值;
_arr[changeArr] = yuanArr // 把这两个值互换
};
return _arr;
};
shuffle(textArr)
3.防抖函数
// es6实现
function debounce(func,later){
let timer ;
return function(...args){
if(timer){
clearTimeout(timer)
};
timer = setTimeout( () => {
func.apply(this,args)
},later)
}
}
// 普通实现
var debounce = function(idle, action){
var last
return function(){
var ctx = this, args = arguments
clearTimeout(last)
last = setTimeout(function(){
action.apply(ctx, args)
}, idle)
}
}
4.数组插入一个新值,放在第一个,且要删除之前如果存在此值
function insertArray (arr, val, compare, maxlen) {
const index = arr.findIndex(compare)
if (index === 0) {
return true
}
if (index > 0) {
arr.splice(index, 1)
}
arr.unshift(val) // 在数组头部插入新元素
if (maxlen && arr.length > maxlen) {
arr.pop() // 要是数组的长度超过了设定的最大长度,就删掉最后一个元素
}
}
// 使用
var arr = [1,2,3];
insertArray (arr, 4, (item) => {return item == 4}, 30)