前言
记录一些取巧、简洁的代码片段,将会不断持续更新...
欢迎路过的同学,补充或给出最优解,感谢...
正文
- 首字母大写转换
const captialize = ([first, ...rest]) => { return first.toUpperCase() + rest.join('') }
- 生成数字范围数组
const range = end => { return Array.from({ length: end }, (_, index) => index) }
- 过滤数组中的虚值(falsy),包括
undefined
、null
、false
、+0
、-0
、NaN
、0n
、''
。除此之外的其他操作数被称为真值(truthy)。
// 注意 Boolean 本身就是一个函数 const filterFalsy = arr => arr.filter(Boolean)
- 生成随机字符串
const getRandomKey = () => Math.random().toString(36).slice(2)
- 生成随机十六进制颜色值(延伸)
// 带透明的的话,取 slice(2, 10) const getRandomColor = () => Math.random().toString(16).slice(2, 8)
- 反转字符串
const reverseStr = str => [...str].reduce((a, s) => s + a)
- 五星打分
const getRating = rate => { if (rate > 5 || rate < 0) throw new Error('不在范围内') return '★★★★★☆☆☆☆☆'.substring(5 - rate, 10 - rate) // return '★'.repeat(rate) + '☆'.repeat(5 - rate) }
有大佬利用这个思路做了个五星评级的组件,详看:★构建东半球最小的评级组件☆。
未完待续...