1. 程式人生 > >[記錄] JavaScript 中的數組操作

[記錄] JavaScript 中的數組操作

開始 來替 for 刪除 string nsh str 參數 cti

1. 定義方式;
var arr = []; // 數組字面量
var arr = new Array(); // 數組構造函數

數組所有方法都來源於 Array.prototype

2. 數組的讀和寫;
arr[num] // 不可以溢出讀 結果undefined
arr[num] = xxx; // 可以溢出寫

3. 改變原數組
push()
// 在數組最後一位添加數據,返回值是數組的長度;
模擬數組方法:
Array.prototype.push = function (){
for( var i=0;i<arguments.lenght;i++){

this[this.length] = arguments[i];
}
return this.length;
}

pop()
// 剪切數組最後一位, 返回值是當前剪切的值;

shift()
// 剪切數組第一位, 返回值是當前剪切的值;

unshift()
// 在數組最前添加數據, 返回值是數組的長度;

sort(fn)
// 排序
// 1. 必須寫兩個形參
// 2. 看返回值 1) 當返回值為負數時, 前面的數放在前面
// 2) 為正數, 後面的數放在前面
// 3) 為0, 不動
arr.sort(function (a, b) {
return a - b;
});

reverse()
// 逆反(顛倒)順序

splice(從第幾位開始, 截取長度, 切口處添加新數據)
// 可以添加,刪除,改。返回值是剪切的值

4. 不改變原數組
concat()
// 鏈接數組 arr.concat(arr1); 返回值為新數組;

join()
// 參數必須是字符串,把數組轉成字符串,以參數來鏈接。

toString()
// 把數組轉為字符串

slice(從該位開始截取, 截取到該位);
// 截取


#### 類數組
1. 屬性要為索引(數字)屬性, 必須有length
2. 不具有數組所具有的方法
可以給類數組添加數組方法,如push: Array.prototype.push
如果添加splice方法則就跟數組長一樣了 [1, 2, 3]

var obj = {
"0": ‘a‘,
"1": ‘b‘,
"2‘: ‘c‘,
"length": 3,
"push": Array.prototype.push,
"splice": Array.prototype.splice
}

好處: (類數組push是根據length來替換)
Array.prototype.push = function (target) {
obj[obj.length] = target;
obj.length ++;
}

[記錄] JavaScript 中的數組操作