JavaScript中陣列常用方法
JavaScript中陣列常用方法
1、push()
向陣列的末尾新增新內容
引數:要新增的項。傳遞多個用逗號隔開,任何資料型別都可以
返回值:新增後陣列的長度
是否改變原陣列:改變
let ary1 = [12,34,26];
ary1.push(100); //返回一個新的長度
length=4console.log(ary1)//結果為 [12,34,26,100]
2、pop()
刪除陣列的最後一項
引數:無
返回值:被刪除的項
是否改變原陣列:改變
let ary2 = [108,112,39,10]; ary2.pop();//刪除的最後一項為10 console.log(ary2);//[108, 112, 39]
3、shift()
刪除陣列的第一項
引數:無
返回值:被刪除的項
是否改變原陣列:改變
let ary3 = [0,108,112,39];
ary3.shift();//刪除的第一項為0
console.log(ary3);//[108, 112, 39]
4、unshift()
向陣列首位新增新內容
引數:要新增的項,多項用','隔開
返回值:新陣列的長度
是否改變原陣列:改變
let ary4 = ['c','d']; ary4.unshift('a','b'); console.log(ary4);//["a", "b", "c", "d"]
5、slice()
按照條件查找出其中的部分內容
引數:
array.slice(n, m),從索引n開始查詢到m處(不包含m)
array.slice(n) 第二個引數省略,則一直查詢到末尾
array.slice(0)原樣輸出內容,可以實現陣列克隆
array.slice(-n,-m) slice支援負引數,從最後一項開始算起,-1為最後一項,-2為倒數第二項
返回值:返回一個新陣列
是否改變原陣列:不改變
let ary5 = [1,2,3,4,5,6,7,8,9]; //console.log(ary5.slice(2,8));//從索引2開始查詢到索引為8的內容,結果為[3, 4, 5, 6, 7, 8] //console.log(ary5.slice(0)); console.log(ary5.slice(-2,-1));//[8]
6、splice()
對陣列進行增刪改
增加:ary.splice(n,0,m)從索引n開始刪除0項,把m或者更多的內容插入到索引n的前面
返回空陣列
修改:ary.splice(n,x,m)從索引n開始刪除x個,m替換刪除的部分
把原有內容刪除掉,然後用新內容替換掉
刪除:ary.splice(n,m) 從索引n開始刪除m個內容
(如果第二個引數省略,則從n刪除到末尾)
返回刪除的新陣列,原有陣列改變
//增加
let ary6_z = [33,44,55,66,77,88];
ary6_z.splice(2,0,'a','b')
console.log(ary6_z);// [33, 44, "a", "b", 55, 66, 77, 88]
//修改
let ary6_x = [33,44,55,66,77,88];
ary6_x.splice(1,2,'x','y')
console.log(ary6_x);// [33, "x", "y", 66, 77, 88]
//刪除
let ary6_s = [33,44,55,66,77,88];
//console.log(ary6.splice(3,2))//[66, 77]
console.log(ary6_s.splice(3));//[66, 77, 88]
7、join()
用指定的分隔符將陣列每一項拼接為字串
引數:指定的分隔符(如果省略該引數,則使用逗號作為分隔符)
返回值:拼接好的字串
是否改變原陣列:不改變
let ary7 = [1,2,3];
console.log(ary7.join('、'));//1、2、3
8、concat()
用於連線兩個或多個數組
引數:引數可以是具體的值,也可以是陣列物件。可以是任意多個
返回值:返回連線後的新陣列
是否改變原陣列:不改變
let ary8 = ['你'];
let ary80 = ary8.concat('好');
console.log(ary80);//["你", "好"]
9、indexOf()
檢測當前值在陣列中第一次出現的位置索引
引數:array.indexOf(item,start) item:查詢的元素 start:字串中開始檢索的位置
返回值:第一次查到的索引,未找到返回-1
是否改變原陣列:不改變
let ary9 = ['a','b','c','d','e','a','f'];
console.log(ary9.indexOf('c'));//2
console.log(ary9.indexOf('a',3))//5
10、lastIndexOf()
檢測當前值在陣列中最後一次出現的位置索引
引數:array.lastIndexOf(item,start) item:查詢的元素 start:字串中開始檢索的位置
返回值:第一次查到的索引,未找到返回-1
是否改變原陣列:不改變
let ary10 = ['a','b','c','d','e','a','f'];
console.log(ary10.lastIndexOf('c'));//2
console.log(ary10.lastIndexOf('f',1))//-1
11、includes()
判斷一個數組是否包含一個指定的值
引數:指定的內容
返回值:布林值
是否改變原陣列:不改變
let ary13 = ['a','b','c','d'];
console.log(ary13.includes('c'));//true
console.log(ary13.includes(2));//false
12、sort()
對陣列的元素進行排序(預設是從小到大來排序 並且是根據字串來排序的)
引數:可選(函式) 規定排序規則 預設排序順序為按字母升序
返回值:排序後新陣列
是否改變原陣列:改變
sort在不傳遞引數情況下,只能處理10以內(個位數)數字排序
let ary11 = [32,44,23,54,90,12,9];
ary11.sort(function(a,b){ // return a-b; // 結果[9, 12, 23, 32, 44, 54, 90]
// return b-a; // 結果[90, 54, 44, 32, 23, 12, 9] })
console.log(ary11);
13、reverse()
把陣列倒過來排列
引數:無
返回值:倒序後新陣列
是否改變原陣列:改變
let ary12 = [6,8,10,12];
console.log(ary12.reverse());//[12, 10, 8, 6]
14、forEach()
迴圈遍歷陣列每一項
引數:函式 ary.forEach(function(item,index,ary){}) item:每一項 index:索引 ary:當前陣列
返回值:無
是否改變原陣列:不改變
forEach中不能使用continue和break,forEach中不能跳出,只能跳過(return跳過)
let ary14 = ['a','b','c','d'];
let item = ary14.forEach(function(item,index,ary){
console.log(item,index,ary);
})