//获取年月日 const formatTime = (date) => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return { year: year, month: [year, month].map(formatNumber).join('-'), day: [year, month, day].map(formatNumber).join('-'), month_tow: month, allDate: [year, month, day].map(formatNumber).join('-') + " " + hour + ":" + minute } } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } //删除数组的某一项 const arrRemoveObj = (array, obj) => { let length = array.length; for (let i = 0; i < length; i++) { if (array[i] === obj) { if (i === 0) { array.shift(); return array; } else if (i === length - 1) { array.pop(); return array; } else { array.splice(i, 1); return array; } } } } //获取对应积分类型 const getTypeItem = (arr, id) => { var item = arr.filter(element => { return typeof (id) == 'string' ? element.code == id : element.id == id }); return item[0] } // 获取唯一标识(uid) const generateUUID = () => { var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); return uuid; }; // 设置缓存 const setCache = (key, val) => { dd.setStorageSync({ key: key, data: val }); } // 获取缓存 const getCache = (key) => { return dd.getStorageSync({ key: key }).data; } // 防抖 const _debounce = (fn, delay = 500) => { let timeout = null; // 创建一个标记用来存放定时器的返回值 return function () { // 每当用户输入的时候把前一个setTimeout clear掉 clearTimeout(timeout); // 然后又创建一个新的setTimeout, // 这样就能保证输入字符后的 interval 间隔内如果还有字符输入的话,就不会执行fn函数 timeout = setTimeout(() => { // 关键在第一个参数,为了确保上下文环境为当前的this,所以不能直接用fn fn.apply(this, arguments); }, delay); } } // 节流 const _throttle = (fn, interval = 500) => { var last; var timer; return function () { var th = this; var args = arguments; var now = +new Date(); if (last && now - last < interval) { clearTimeout(timer); timer = setTimeout(function () { //用户最后一次点击时间间隔小于设置时间执行 last = now; fn.apply(th, args); }, interval); } else { last = now; fn.apply(th, args); } } } module.exports = { formatTime, arrRemoveObj, getTypeItem, generateUUID, setCache, getCache, _debounce, _throttle, }