實務上有時會想將 整數 的最後幾位去除,是否有更簡潔的作法呢 ?
Version
macOS Catalina 10.15.6
VS Code 1.47.2
Quokka 1.0.309
Ramda 0.27.0
substring()
let data = 1553
let f = n => v => {
let s = String(v)
return s.substring(0, s.length - n)
}
f(1)(data) // ?
f(2)(data) // ?
需求是整數 1553,想要去除最後一位成 155,去除最後兩位成 15。
先將 Integer 轉型成 String,再使用 substring() 去除掉最後幾位數。

Bitwise Operator
let data = 1553
let f = n => v => v / (10 ** n) | 0
f(1)(data) // ?
f(2)(data) // ?
先使用 除法 取得整數部分,去除最後一位相當於 除以 10,去除最後兩位相當於除以 100,以此類推。
小數部分在與 | 0 去除,則只保留整數部分。

Conclusion
- 使用 bitwise operator,則都在 Number 處理,不用先轉成 String,因此一行即可解決
**為 ES2016 新增的 operator,相當於Math.pow()
Reference
Bret Cameron, 12 JavaScript Tricks You Won’t Find in Most Tutorials