數組方法總結
join()
把數組中所有元素轉化為字元串並連接起來,並返回該字元串,
var
arr=[1,2,3];
var
str=arr.join("#"); //str="1#2#3";
如果沒有指定分隔符,則默認為逗號
var
str2=arr.join(); //str2="1,2,3";
reverse()
在原數組上把元素的順序顛倒過來,並返回該數組
var
arr=[1,2,3];
arr.reverse(); //arr=[3,2,1];
sort()
在原數組上對數組元素進行排序,並返回該數組
在沒有使用參數的時候,是將按字母順序對數組中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序,如
var
arrNum=[2,11,3];
var
arrStr=["bb","aa","cc"];
arrNum.sort(); //arrNum=[11,2,3]
arrStr.sort(); //arrStr=["aa","bb","cc"];
對於數組裡出現不同類型的元素的時候,比如數字與字元串,數組的元素是數組,當然如果一個數組裡的元素有好幾種數據類型,如函數,數組,對象,字元串……再對此數組進行排序是沒有實際意義的
var
arr1=["22",11,3];
var
arr2=[[3,2],[111,3,222],[222,333]];
arr1.sort(); //arr1=[11,"22",3];
arr2.sort(); //arr2=[[111,3,222],[222,333],[3,2]];
sort()能接受一個比較函數作為參數,如:
var
arrNum2=[3,5,2,1,4];
arrNum2.sort(function(a,b){
return
a-b;
}); //arrNum2=[1,2,3,4,5];
arrNum2.sort(function(a,b){
return
b-a;
}); //arrNum2=[5,4,3,2,1];
concat()
這個不懂怎麼描述,直接看結果就明白啥意思了,他放回的是新建的數組,不會對原數組作修改
var
arr=[1,2,3];
var
arr2=[4,5];
var
arr3=[6,7,[8,9]];
var
str="hello wrold";
var
num=10;
arr.concat(arr2); //返回[1,2,3,4,5]
arr.concat(str); //返回[1,2,3,"hello world"]
arr.concat(num); //返回[1,2,3,10];
arr.concat(arr3); //返回[1,2,3,6,7,[8,9]]
slice()
返回指定數組的子數組,返回的是一個新的數組
他接受兩個參數,返回的數組包含第一個參數指定位置和所有但不包含第二個參數指定位置的所有數組元素,如
var
arr=[1,2,3,4,5];
arr.slice(1,3); //返回[2,3];
如果只指定一個參數,則返回從第一個參數指定的位置開始到數組結尾的所有數組元素,如
var
arr=[1,2,3,4,5];
arr.slice(2); //返回[3,4,5];
如果參數是負數,則表示倒數位置,如-1表示倒數第一個元素,-3表示倒數第三個元素,如
var
arr=[1,2,3,4,5];
arr.slice(1,-1); //return [2,3,4];<br>arr.slice(-3,-1); //return [3,4];<br>arr.slice(-6,-1); //return [1,2,3,4];
如果第一個參數比第二個參數大,或者參數值比數組長度大,如下面這些都是放回空數組[]
var
arr=[1,2,3,4,5];
console.log(arr.slice(4,1));
console.log(arr.slice(-1,-5));
console.log(arr.slice(8,10));
splice()
splice()插入或刪除數組元素的通用方法,是在原數組上操作,會修改原數組,同時原數組的元素索引值會相應的增加或減小;返回的是被刪除元素組成的數組,如果被刪除的個數為零,則返回空數組[]
第一個參數指定了要插入或刪除的元素在數組中的位置,第二個參數指定了從指定位置開始的要刪除的元素個數;如果省略了第二個參數,則從起點開始到數組結尾的所有的元素都被刪除。
var
arr=[1,2,3,4,5,6];
var
returnVal=arr.splice(4); //returnVal=[5,6]; arr=[1,2,3,4];
returnVal=arr.splice(1,2); //returnVal=[2,3]; arr=[1,4];
returnVal=arr.splice(1,1); //returnVal=[4]; arr=[1];
插入元素
var
arr=[1,2,3,4,5,6];
var
returnVal=arr.splice(1,0,a,b); //returnVal=[]; arr=[1,a,b,2,3,4,5,6];
returnVal=arr.splice(1,2,7,[8,9]); //returnVal=["a","b"]; arr=[1,7,[8,9],2,3,4,5,6];
push()與pop()
push():在數組的尾部添加一個或多個元素,並返回數組新的長度
var
arr=[];
var
returnVal=arr.push("2",3); //arr=[1, "2", 3], returnVal=2;
pop():在數組的尾部刪除一個元素,並返回刪除的元素
var
arr=[1,2,3];
var
returnVal=arr.pop(); //arr=[1, 2], returnVal=3;
兩個方法都修改並替換了原數組
unshift()與shift()
unshift()與shift()方法類似於push()與pop(),只不過他是在數組頭部進行插入或刪除操作,同時已存在的元素的索引會跟著變得,不會出現稀疏數組
var
arr=[1,2];
var
returnVal=arr.unshift(3); //arr=[3,1,2], returnVal=3;
var
arr=[1,2,3];
var
returnVal=arr.shift(); //arr=[2,3], returnVal=1;
當一次性插入多個元素,與一個一個插入元素得到的結果是有區別的,如:
推薦閱讀:
※歐拉公式的平面幾何是怎樣的?
※歐拉公式中的拓撲學跟物理學是什麼?
※範疇論學習筆記16:函子範疇、範疇的等價
※第一篇:不等式的套路分析