JS小技巧
数组去重
let newArr = (arr) => [...new Set(arr)] console.log(newArr(['js', 'html', 'js', 'css', 'css'])); // ["js", "html", "css"]
获取URL的参数转为对象
let getObj = url => JSON.parse( `{"${decodeURI(url.split("?")[1]).replace(/&/g, '","').replace(/=/g, '":"')}"}` ) console.log(getObj("https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=monline_3_dg")); // {ie: "utf-8", f: "3", rsv_bp: "1", rsv_idx: "1", tn: "monline_3_dg"}
检测对象是否为空
let obj1 = {} console.log(obj1 == {}); // false let isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object; console.log(isEmpty(obj1)); // true let obj2 = {name: "zs"} console.log(isEmpty(obj2)); // false
反转字符串
let reverseStr = str => str.split('').reverse().join('');
console.log(reverseStr('tpircSavaJ olleh')); // hello JavaScript
生成随机十六进制颜色
const randomColor = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`
console.log(randomColor()); // #ab8056
获取两日期之间相差的天数
const dayDiff = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000); console.log(dayDiff(new Date("2022-9-1"), new Date("2022-11-13"))); // 74
检查设备类型
const judgeDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent) ? 'Mobile' : 'PC'; console.log(judgeDeviceType()); // PC | Mobile
计算数组平均值
const average = (arr) => arr.reduce((a, b) => a + b) / arr.length;
console.log(average([23, 10, 86, 49])); // 42
浙公网安备 33010602011771号