【掘金】原贴
这个帖子感觉挺好,能提取成公共Utils。代码简介且实用
所以做一下笔记
- 获取字符串中的字符数
const chartCount = (str, chart) => str.split(chart).length - 1
根据字符串chart分割成数组的原理。看看分割成的数组长度。然后-1
- 检查对象是否为空
对象为空 判断==={} 也是会返回false的。
因为引用类型是地址指针。a={},b={} a===b 也会是false,因为他们是不同的指向堆栈中的指针
判断是否为对象,对象的键的长度是否为0
const isEmpty = obj => obj.constructor === Object && obj.Reflect.ownKeys(obj).lenght === 0
let isempty = (obj) => Object.keys(obj).length ===0
- 检查设备上的触摸支持
const touchSupported = () => ('ontouchstart' in window || DocumentTouch && document instanceof DocumentTouch)
-
随机排列数组
sort,数字排序失效。给sort()添加一个回调函数,根据回调函数的返回值来自定义排序规则:如果 返回值 > 0,则元素交换位置
如果 返回值 < 0,则元素位置不变
如果 返回值 = 0,则认为两个元素相等,不交换位置
const shuffle = arr => arr.sort(() =>0.5 - Match.random())
- 获取随机布尔值
const getRandomBoolearn = () => Match.random() >=0.5
如果你想得到一个概率为 70% 的随机布尔值,那么你可以简单地将 0.5 更改为 0.7 等等。
- 计算数组的平均值
reduce (累加器)来获取一行中数组的总和
const average =(arr) => arr.reduce((a,b) => a + b) / arr.length