整理了以下陣列方法
- join()
- push()和pop()
- shift() 和 unshift()
- sort()
- reverse()
- concat()
- slice()
- splice()
- indexOf()和 lastIndexOf() (ES5新增)
- forEach() (ES5新增)
- map() (ES5新增)
- filter() (ES5新增)
- every() (ES5新增)
- some() (ES5新增)
1|0 join()
join,就是把陣列轉換成字串,然后給他規定個連接字符,默認的是逗號( ,)
書寫格式:join(" "),括號里面寫字串 ("要加引號"),
var arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原陣列不變)
2|0 push()和pop()
push(): 把里面的內容添加到陣列末尾,并回傳修改后的長度,
pop():移除陣列最后一項,回傳移除的那個值,減少陣列的length,
書寫格式:arr.push(" "),括號里面寫內容 ("字串要加引號"),
書寫格式:arr.pop( )
var arr = ["Lily","lucy","Tom"];
var count = arr.push("Jack","Sean");
console.log(count); // 5
console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]
var item = arr.pop();
console.log(item); // Sean
console.log(arr); // ["Lily", "lucy", "Tom", "Jack"]
3|0 shift() 和 unshift() (和上面的push,pop相反,針對第一項內容)
shift():洗掉原陣列第一項,并回傳洗掉元素的值;如果陣列為空則回傳undefined ,
unshift:將引數添加到原陣列開頭,并回傳陣列的長度 ,
書寫格式:arr.shift(" "),括號里面寫內容 ("字串要加引號"),
var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
var item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
4|0 sort()
sort():將陣列里的項從小到大排序
書寫格式:arr.sort( )
var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
sort()方法比較的是字串,沒有按照數值的大小對數字進行排序,要實作這一點,就必須使用一個排序函式
function sortNumber(a,b)
{
return a - b
}
arr = [13, 24, 51, 3]; console.log(arr.sort()); // [13, 24, 3, 51]
console.log(arr.sort(sortNumber)); // [3, 13, 24, 51](陣列被改變)
5|0 reverse()
reverse():反轉陣列項的順序,
書寫格式:arr.reverse( )
var arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原陣列改變)
6|0 concat()
concat() :將引數添加到原陣列中,這個方法會先創建當前陣列一個副本,然后將接收到的引數添加到這個副本的末尾,最后回傳新構建的陣列,在沒有給 concat()方法傳遞引數的情況下,它只是復制當前陣列并回傳副本,
書寫格式:arr.concat(),括號里面寫內容 ("字串要加引號"),
var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]
console.log(arr); // [1, 3, 5, 7](原陣列未被修改)
7|0 slice()
slice():回傳從原陣列中指定開始下標到結束下標之間的項組成的新陣列,slice()方法可以接受一或兩個引數,即要回傳項的起始和結束位置,在只有一個引數的情況下, slice()方法回傳從該引數指定位置開始到當前陣列末尾的所有項,如果有兩個引數,該方法回傳起始和結束位置之間的項——但不包括結束位置的項,
書寫格式:arr.slice( 1 , 3 )
var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr); //[1, 3, 5, 7, 9, 11](原陣列沒變)
console.log(arrCopy); //[3, 5, 7, 9, 11]
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]
arrCopy只設定了一個引數,也就是起始下標為1,所以回傳的陣列為下標1(包括下標1)開始到陣列最后,
arrCopy2設定了兩個引數,回傳起始下標(包括1)開始到終止下標(不包括4)的子陣列,
arrCopy3設定了兩個引數,終止下標為負數,當出現負數時,將負數加上陣列長度的值(6)來替換該位置的數,因此就是從1開始到4(不包括)的子陣列,
arrCopy4中兩個引數都是負數,所以都加上陣列長度6轉換成正數,因此相當于slice(2,5),
8|0 splice()
splice():洗掉、插入和替換,
洗掉:指定 2 個引數:要洗掉的第一項的位置和要洗掉的項數,
書寫格式:arr.splice( 1 , 3 )
插入:可以向指定位置插入任意數量的項,只需提供 3 個引數:起始位置、 0(要洗掉的項數)和要插入的項,
書寫格式:arr.splice( 2,0,4,6 )
替換:可以向指定位置插入任意數量的項,且同時洗掉任意數量的項,只需指定 3 個引數:起始位置、要洗掉的項數和要插入的任意數量的項,插入的項數不必與洗掉的項數相等,
書寫格式:arr.splice( 2,0,4,6 )
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/941.html
標籤:JavaScript
