push(),pop()方法 push(),pop()方法也叫棧方法,push()可以理解成,向末尾推入,而pop()恰好相反,可以理解成從末尾移除(取得)。 通過上面的代碼可以總結出以下幾點關於push(),pop()的規則: push(),pop()方法均可以改變原數組; push()方法的返回 ...
push(),pop()方法
push(),pop()方法也叫棧方法,push()可以理解成,向末尾推入,而pop()恰好相反,可以理解成從末尾移除(取得)。
var nums=[1,2,3,4]; var counts=nums.push(5,6); alert(nums); //1,2,3,4,5,6 改變原數組 alert(counts); //6 返回新數組數組的長度 var num=nums.pop(); alert(nums); //1,2,3,4,5 改變原數組 alert(num); //6 返回數組最後一個值
通過上面的代碼可以總結出以下幾點關於push(),pop()的規則:
- push(),pop()方法均可以改變原數組;
- push()方法的返回值是新數組的數組長度;
- pop()方法的返回值是原數組最後一個值;
shift(),unshift()方法
shift(),unshift()方法也叫作隊列 方法,shift()從頭部移除(取到),unshift()理解成從頭部推入。
var nums=[1,2,3,4]; var num=nums.shift(); alert(nums); //2,3,4 改變原數組 alert(num); //1 返回數組第一個值 var counts=nums.unshift(-1,0,1); alert(nums); //-1,0,1,2,3,4 改變原數組 alert(counts) //6 返回新數組長度
通過上面的代碼可以總結出以下幾點關於shift(),unshift()的規則:
- shift(),unshift()方法均可以改變原數組;
- unshift()方法的返回值是新數組的數組長度;
- shift()方法的返回值是原數組最後一個值;
sort(),reverse()方法
數組當中有兩個可用來重排序,其中reverse是按照數組的倒序進行重新排序,sort()是通過字元竄的比較進行排序的。
var arr=[3,1,8,5,10]; arr.reverse(); alert(arr); //10,5,8,1,3
/****************************************/
var arr=[3,1,8,5,10]; arr.sort(); alert(arr); //1,10,3,5,8 按字元串進行比較 alert("10">"5"); //false alert(10>5); //true
因為sort()在進行排序表比較的過程中會出現如上情況,所以需要給sort()添加一個比較函數;
function compare(a,b){ return a-b; }
- 當a-b>0,a和b的位置調換;
- 當a-b<=0,a和b的位置不變;
function compare(a,b){ return a-b; } var arr=[3,1,8,5,10]; arr.sort(compare); alert(arr); //1,3,5,8,10
slice(),splice()方法
slice()方法
-
slice()的操作返回新數組;
- slice()不會改變原數組;
slice()方法可以理解成“提取”;
var arr=[1,2,3,4,5,6]; var arr1=arr.slice(1); var arr2=arr.slice(1,2); var arr3=arr.slice(0,4); var arr4=arr.slice(2,5); var arr5=arr.slice(-3,-1); console.log(arr1); //[2, 3, 4, 5, 6] console.log(arr2); //[2] console.log(arr3); //[1,2, 3, 4] console.log(arr4); //[3, 4, 5] console.log(arr5); //[4, 5] console.log(arr); //[1,2,3,4,5,6] 不改變原數組
splice()方法
splice()與slice()看起來名字類似,但是有很大的不同,功能也比較強大,有三種。
1 刪除:
參數:1個或兩個;與slice()方法使用類似,但是會改變原數組;
var arr=[1,2,3,4,5,6]; var arr1=arr.splice(1,3); console.log(arr1); //[2, 3] 新數組 console.log(arr); //[1,4,5] 原數組被改變 /*參數是一個的時候*/ var arr=[1,2,3,4,5,6]; var arr1=arr.splice(1); console.log(arr1); //[2, 3,4,5,6] 新數組 console.log(arr); //[1] 原數組被改變
2 插入:
參數:三個以上;
第一個:起始位置;
第二個:0;
第三個之後:要插入的項("red","blue")
var colors=["red","blue"]; var newColors=colors.splice(1,0,"yellow","black"); console.log(newColors); //[] 返回一個空數組 console.log(colors); //["red", "yellow", "black", "blue"] 數組被改變
3 替換
參數:三個以上;
第一個:起始位置;
第二個:被替換的個數或刪除的個數;
第三個之後:替換後要插入的項("red","blue");
var colors=["red","blue","green"]; var newColors=colors.splice(1,2,"yellow","black"); console.log(newColors); //["blue","green"] 返回被替換的數組 console.log(colors); //["red", "yellow", "black"] 數組被改變
concat()方法
可以理解成是一個連接數組的方法,不會改變原數組
var arr=[1,2,3]; var newArr=arr.concat(4,[5,6]); alert(arr); //[1,2,3] 不改變原數組 alert(arr1); //[1,2,3,4,5,6] 返回新數組
jion()方法
可以將數組轉換成字元串,並改變連接符,不會改變原數組
var colors=["red","blue","green"]; var newColors=colors.join("-"); alert(newColors); //red-blue-green alert(colors); //["red","blue","green"]
indexOf()和lastIndexOf()方法
查找數組中的元素是否存在,若存在返回找到的一個的索引值,不存在返回-1
indexOf()從前到後查找,lastIndexOf()從後向前查找
均有兩個參數,
第一個參數:要查找的項
第二個參數:查找的索引位置起點(可選)
var nums=[1,2,3,4,5,2,7,8]; alert(nums.indexOf(2)); //1 alert(nums.lastIndexOf(2)); //5 alert(nums.indexOf(2,3)); //5 alert(nums.lastIndexOf(2,-4)); //1