记录几个有用的工具方法
数组去重
const uniqueArr = arr => [...new Set()]; // Set 是es6加入的
将数组去重方法写在原型上:
Array.prototype.uniqueArr = arr => [...new Set()];
let arr = [1,1,2,2,3,3,4,5].uniqueArr ();
计算数组平均值
const meanArr= arr => arr.reduce((a, b) => a+b) / arr.length;
随机排列数组
const sortRandom= arr => arr.sort(() => 0.5 - Math.random())
获取数组交集
const intersection = (arr, val) => arr.filter(v => val.includes(v))
多维数组转一维数组
const deepFlattenArr = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlattenArr(v) : v ))) ;
过滤数组对象属性
const filterProp = (data, keys) => data.map(el => keys.reduce((pr,key) => { pr[key] = el[key] || '--undefined'; return pr;}, {})) // keys是一个数组,包含了所有data对象的属性
对象是否为空
const isObjEmpty= obj => JSON.stringify(obj) === '{}'
反转字符串
const reverseStr = str => str.split('').reverse().join('');
字符串首字母大写
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)
检查数字是偶数还是奇数
const isEven = num => num % 2 === 0;
将数字转化为千分位格式
const toDecimal = num => num.toLocaleString();
转化成百分比
toLocaleString('zh',{style:'percent'})
获取随机布尔值
const getRandomBool = () => Math.random() >= 0.5;
以上方法摘抄自下方视频,附上原作者的视频连接
超实用的单行JS代码,花一分钟看看,手写代码不再怕!