1. 程式人生 > 實用技巧 >JavaScript 程式設計黑科技,一些小技巧

JavaScript 程式設計黑科技,一些小技巧

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);