Javascript知識點總結(五)
阿新 • • 發佈:2019-01-05
陣列(Array)
陣列是值得有序集合,每一個值叫做一個元素。陣列元素可以是任意型別,並且同一個陣列中的不同元素也可以是不同型別的。
- 陣列常見宣告方式
方式一:
var arr = [1,2,3];
方式二:
var arr = new Array(); 呼叫時沒有引數
var arr = new Array(5); 呼叫時有引數,引數是這個陣列的長度
var arr = new Array(5,"test",{x:1});顯示指定陣列元素的數值
陣列的讀寫
每個陣列中的元素在陣列中都有指定的角標用於表示陣列元素在陣列中的位置。每個陣列都以第0個元素開始,每個陣列都有一個length屬性用於計算陣列的長度,空陣列的長度為0。
var arr = [1,2,3];
讀:console.info(arr[0]+":"+arr[1]+":"+arr[2]);
寫:arr[0] = 4;
陣列長度:console.info(arr.length); =>3
- 陣列元素的新增和刪除
push()和pop()
其中push()是以棧式新增,而pop()則是每次使數字減一併返回被刪除的元素。
var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push({x:1});
console.info(arr);
var result = arr.pop ();
console.info(result);
var result = arr.pop();
console.info(result);
shift和unshift
unshift()在陣列的頭部新增一個元素並返回新陣列的長度
shift()在陣列的頭部刪除一個元素並返將其返回
var arr = [1,2,3,4];
var result = arr.unshift(5);
console.info(arr); =>[5,1,2,3,4]
- 數字遍歷
for/while迴圈
var arr = [1,2,3];
for(var i = 0,len = arr. length;i < len;i++){
console.info(arr[i]);
}
for/in迴圈
for(var i in arr){
console.info(i +":" + arr[i]);
}
- 陣列中常用的方法
join()方法將陣列中的元素轉化為字串並連線在一起,可以指定分隔符,預設用逗號(,)分割。
var arr = [1,2,3,4];
a.join(); => "1,2,3"
a.join("-"); =>"1-2-3"
reverse()用於返回逆序陣列
var arr = [1,2,3,4];
arr.reverse(); = > [4,3,2,1]
sort()排序並返回排序後的值,可以通過傳入一個函式來進行限定排序方式
var arr = [3,2,4,1];
console.info(arr.sort());=> [1,2,3,4];
var arr = ['banana','cherry','apple'];
console.info(arr.sort());=>['apple','banana','cherry']
concat() 返回一個原陣列和concat()引數的合併陣列
var arr = [1,2,3];
arr.concat(4,5); => [1,2,3,4,5]
arr.concat([4,5],[6,7]);=>[1,2,3,4,5,6,7]
slice() 返回陣列的片段
var arr = [1,2,3,4,5,6,7];
arr.slice(0,3); => [1,2,3] 從左向右數,左閉右開
arr.slice(3); => [4,5,6,7]
arr.slice(-3,-2);=> [5] 從右向左數,右閉左開,左邊的數比右邊的數要小
forEach()迴圈函式,不可以終止迴圈,除非遇到foreach.break異常
var arr = [1,2,3,4,5];
arr.forEach(function(a){
try{
}catch(e){
if(e === foreach.break)break;
else throw e;
}
});
返回值為undefined
map()陣列元素處理函式,返回一個新的陣列,原陣列不變
var arr = [1,2,3];
var result = arr.map(function(param){
return param * param;
});
console.info(result); => [1,4,9]
filter()陣列元素過濾函式,返回過濾後的陣列,原陣列不變
var arr = [1,2,3,4,5,6];
var result = arr.filter(function(param){
return param < 3;
});
console.info(result); => [1,2]
every() 陣列中所有元素都滿足條件返回true,否則返回false
var arr = [1,2,3];
var result = arr.every(function(param){
return param < 10;
});
console.info(result); => true
some() 陣列中有滿足條件的就返回true,否則返回false
var arr = [1,2,3];
var result = arr.some(function(param){
return param < 2;
});
console.info(result); => true
indexOf()從左向右搜尋,返回索引值,如果沒有則返回-1
var arr = [0,1,2,1,0];
arr.indexOf(1); => index:1
lastIndexOf()從右向左搜尋,返回索引值,如果沒有則返回-1
var arr = [0,1,2,1,0];
arr.lastIndexOf(1); => index:3
isArray()判斷是否是陣列
Array.isArray([]); =>true
Array.isArray({}); =>false