JavaScript 程式設計黑科技,一些小技巧
阿新 • • 發佈:2020-11-16
1、論如何優雅的取隨機字串
Math.random().toString(16).substring(2) // 13位 Math.random().toString(36).substring(2) // 11位
2、論如何優雅的取整
var a = ~~2.33 var b= 2.33 | 0 var c= 2.33 >> 0
3、如何優雅的實現金錢格式化:1234567890 --> 1,234,567,890
用正則魔法實現:
var test1 = '1234567890' var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',') console.log(format)// 1,234,567,890
非正則的優雅實現:
function formatCash(str) { return str.split('').reverse().reduce((prev, next, index) => { return ((index % 3) ? next : (next + ',')) + prev }) } console.log(formatCash('1234567890')) // 1,234,567,890
4、論如何最佳的讓兩個整數交換數值
var a=1,b=2; a += b; b = a - b; a-= b;
缺點也很明顯,整型資料溢位,對於32位字元最大表示數字是2147483647,如果是2147483645和2147483646交換就失敗了。黑科技辦法:
a ^= b; b ^= a; a ^= b;
看不懂的童鞋建議去補習一下C語言的位操作。
5、最短的程式碼實現陣列去重
[...new Set([1, "1", 2, 1, 1, 3])]
6、取出一個數組中的最大值和最小值
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; var maxInNumbers = Math.max.apply(Math, numbers);var minInNumbers = Math.min.apply(Math, numbers);