记录一些取巧、简洁的代码片段,将会不断持续更新...
欢迎路过的同学,补充或给出最优解,感谢...
- 首字母大写转换
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)
}
有大佬利用这个思路做了个五星评级的组件,详看:★构建东半球最小的评级组件☆。
未完待续...
网友评论