JavaScript 技巧總結

看風景就發表於2015-08-30

日期
1. 日期時間戳
+new Date() = new Date().getTime()

陣列
1. 類陣列轉陣列
var arr = Array.prototype.slice.call(arguments)

2. 連線類陣列
Array.prototype.push.apply(arr, arguments)

3. 陣列插入另一個陣列的指定位置
var a = [1,2,3,7,8,9];
var b = [4,5,6];
var insertIndex = 3;
a.splice.apply(a, Array.prototype.concat(insertIndex, 0, b));

4. 陣列最大值和最小值
Math.max.apply(Math,[1,2,3])
Math.max.apply(Math,[1,2,3])

5. 截斷陣列和清空陣列
var arr = [1, 2, 3];
arr.length = 1;
console.log(arr); // [1]
arr.length = 0;
console.log(arr); // []
arr.length = 5;
console.log(arr); // [1,2,3,undefined,undefined]

6. 陣列深複製
var a = [1, 2, 3];
var b = a.concat(); // a的深複製

7. 陣列元素刪除
陣列元素刪除使用 splice,不能使用delete,delete只是將元素置為undefined
物件屬性刪除 delete

8.其他

獲取陣列末尾的m個元素  Array.prototype.slice(-m)
陣列截斷   array.length = m (m < array.length)
陣列洗牌   array.sort(function(){Math.random - 0.5 })

字串
1. 去除首尾空格
String.prototype.trim = function(){return this.replace(/^\s+|\s+$/g, "");}

2. 使用+將字串轉換成數字

+'123' = 123

隨機數
1. 從陣列中隨機獲取成員
var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119];
var randomItem = items[Math.floor(Math.random() * items.length)];

2. 獲取指定範圍的隨機數
var x = Math.floor(Math.random() * (max - min + 1)) + min;

3. 生成隨機碼
Math.random().toString(16).substring(2);
Math.random().toString(36).substring(2);

4. 生成隨機的字母和數字組成的字串
function generateRandomAlphaNum(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
}

5. 對數字陣列進行隨機排序
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
numbers = numbers.sort(function(){ return Math.random() - 0.5});

相關文章