JS 數組
以索引為鍵的對象,性能高于對象
創建
- new Array()
var arr = Array()
for(var i = 0;i<5;i++){arr[i] = i;
};
var arr = Array(1,2,3,4,5,6)
- 數組字面量
var arr = [2,3,4,5,6,7,8];
不同:傳入一個整數時,new把這個數當作數組長度,字面量當作一個元素
常用方法
- length:返回長度,也可以修改長度
var arr = [2,3,4,5,6,7,8];
console.log(arr.length)
// 修改長度,大于本來的長度,添加空的元素
arr.length = 10;
console.log(arr);
// 修改長度,小于本來的長度,刪除多的元素
arr.length = 3;
console.log(arr);
- pop():刪除并返回最后一個元素
- push():在最后添加一個元素并返回
- unshift():在開頭添加并返回一個元素
- shift():刪除并返回第一個元素
- slice(start,end):類似切片,異地操作
- splice(start,num,···):原地操作,刪除并向數組中添加元素,參數:開始刪除的位置和刪除的數量,插入的新元素
- concat():異地操作,拼接多個數組并返回
- join():異地,將數組轉換為字符串
- reverse():反轉數組
- sort():排序
自定義排序規則
默認按照unicode編碼順序排序,這樣對數字排序會出錯
返回大于0的值交換位置,否則保持
arr.sort(function(a,b){// 方法1// if(a>b){// return -1;// }else if(a == b){// return 0;// }else{// return 1;// }//方法2return b-a;
});
console.log(arr);
遍歷數組
- for循環
- 使用forEach()方法,有的瀏覽器不支持,需要一個函數做參數(匿名函數),數組中有幾個元素,函數就會執行幾次,每次循環數組中的元素都會以實參的形式傳給函數(會同時傳三個,第一個是值(value),第二個是索引(index),第三個是正在遍歷的數組(object))
- JS訪問越界的數組不會報錯,會輸出underfind