「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」
前言
代码写出来是给人看的,只是恰好电脑可以运行~让我们一起努力!
正文
快速创建一个长度不固定的数组,且每项都是其下标
正常的开发过程中,我们可能第一个想到的是for循环,然后一个个塞进去类似下方内容:
const fun = length => {
const arr = []
for(let i = 0; i < length; i++) {
arr.push(i)
}
return arr
}
这样实现虽然也没错,但是我们的目的不是去实现,而是为了用更少的代码去实现它,大家能想到的方法都还有什么呢?可以在评论区回复~
现在我来告诉大家我知道的简便方法:
// 方法一
const fun = length => {
return Array.from(new Array(length).keys())
}
// 方法二
const fun = length => {
return Object.keys(Array.from({ length }))
}
// 方法三
const fun = length => {
return [...Array(length).keys()]
}
// 方法四
const fun = length => {
return Array.from({ length }, (a, b) => b)
}
// 方法五
const fun = length => {
return Array(length).fill(true).map((x,i)=>i)
}
浮点数快速取整
在外面开发过程中,相信大家经常遇到浮点数取整的问题,那么大家都是如何实现的呢?
下面我给大家介绍一种快速取整的方式:
console.log(1.123131231 | 0) // 1
console.log(-1.123131231 | 0) // -1
这样写代码是不是更简洁了,让我们一起用起来吧~
~str.indexOf(xx)代替str.indexOf(xx) > -1
"~" 运算符,大家平常开发中有使用么?
它用于对一个二进制操作数逐位进行取反操作(位非)
说了概念大家可能不懂,让我们一起看看效果:
console.log(~-1) // 0
console.log(~1) // -2
相信大家也发现规律了,位非运算实际上就是对数字进行取负运算,再减 1,在JS中0 = false, 因此可以用 “~str.indexOf(xx)” 去代替 str.indexOf(xx) > -1,例如:
let str = 'aaaaa'
console.log(~str.indexOf('b')) // 0
'~~' 快速向下取整
通过上一个方法,我们知道 “~” 取负运算,再减 1,因此快速取整,我们可以这样写:
console.log(~~3.1415926) // 3
console.log(~~-3.1415926) // -3
数组过滤
日常大家的开发过程中有没有遇到数组中包含null, 0, '', undefined这样的数据结构,下面的方法可以帮助我们快速过滤:
console.log([null, 1, '', 2, 0, 3, undefined, 5, NaN, 6].filter(Boolean)) // [1, 2, 3, 4, 5, 6]
快速判断奇数和偶数
如果你还在用 %2 === 0 这样的方式去判断奇数和偶数,那么你可以试试下面的方法,一定会让你爱上它(&1):
console.log(4&1) // 0
console.log(3&1) // 1
结语:
大家都学会了么?让我们一起期待下一次的更新~