//vue节流,防抖动,防止多次点击触发
//utils.js
let timer = null
function debounce(fn,wait){
if(timer!==null){
clearTime(timer)
}
timer = setTimeout(fn,wait)
}
<view class="btn" @click="handle">点击事件</view>
//引入调用
import {debounce} from 'common/util.js'
handle(){
let _t = this
debounce(()=>{
_t.num+=1
console.log(_t.num)
},1000)
}
//实现数组的随机排序
let arr =[1,2,3,4,5,6]
arr.sort(function(a,b){
return Math.random() >0.5 ?-1:1
})
//大小排序
arr.sort( (a,b) => a - b )排序
//对象排序
arr = arr.sort((() => (a,b)=> a['id'] - b['id'])());
//数组去重,对象数组去重
let arr1=[1,1,1,2,3,3,4,5,5,]
function uniqueArr(arr){
let newArr = []
for(let i=0,len=arr.length;i<len;i++){
if(newArr.indexOf(arr[i]===-1)){
newArr.push(i)
}
}
return newArr
}
//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
//如果没有找到匹配的字符串则返回 -1。
console.log(uniqueArr(arr))
简单写法
let o = [1,2,1,2,1,3,4,5]
let p = Array.from(new Set(o))
对象去重
function ArrSet(Arr, id) {
var obj = {};
const arrays = Arr.reduce((setArr, item) => {
obj[item[id]] ? '' : obj[item[id]] = true && setArr.push(item);
return setArr;
}, []);
return arrays;
}
//
function uniqueArr(arr){
let nArr = [];
for (let i = 0; i < arr.length; i++) {
if (nArr .indexOf(arr[i].id) == -1) {
nArr .push(arr[i].id);
} else {
arr.splice(i, 1);
};
};
return arr;
}
//将真/假值转换为布尔值
!!"" // false
!!0 // false
!!null // false
!!undefined // false
!!NaN // false
!!"你好" // true
!!1 // true
!!{} // true
!![] // true
//从数组中计算最大值/最小值
Math.max(1, 2, 3, 4); // 4
Math.min(1, 2, 3, 4); // 1
var numbers = [1, 2, 3, 4];
Math.max.apply(null, numbers) // 4
Math.min.apply(null, numbers) // 1
Math.max(...numbers) // 4
Math.min(...numbers) // 1
//改进嵌套条件
if(name='a'){
ft1()
}else if(name=='b'){
ft2()
}
//改进
let nameObj = {
'a':ft1,
'b':ft2
}
if(name in nameObj){
nameObj[name]()
}