1. 程式人生 > >陣列操作方法

陣列操作方法

陣列操作方法

今天重新溫故以前的知識點,記錄一下學習心得

join()

join()方法將陣列中所有的元素都轉化為字串並連結再一起,返回左後生成的字串,可以指定一個字元來分隔陣列中的各個元素

var a=[1,2,3];
a.join();//=>"1,2,3"
a.join("-");//=>"1-2-3";

reverse()

reverse()方法是將陣列中的元素顛倒順序,返回逆序的陣列

var a=[1,2,3];
a.reverse();//=>[3,2,1];
a,reverse().join();//=>"3,2,1";

sort()

sort()方法是將陣列中的元素排序並返回排序後的陣列,1.當不帶引數呼叫的時候,陣列元素是以字母表順序排序,為了按照其他方式而非字母表順序進行排序,要給sort()方法傳引數

//不傳引數
var a=['apple','cherry','banana'];
a.sort();//=>['apple','banana','cherry'];
var b=[33,4,1111,222];
b.sort();//=>[1111,222,33,4];
b.sort(function(a,b){
	return a-b;
});//=>[4,33,222,1111]從小到大排序
b.sort
(function(a,b){return b-a});//=>[1111,222,33,4]從大到小的順序排序

concat()

concat()方法建立並形成一個新的陣列,它的元素包括呼叫concat()的原始陣列的元素和concat()的每個引數,concat()方法不會修改呼叫的陣列,例如下面的這些

var a=[1,2,3];
a.concat(4,5);//=>[1,2,3,4,5];
a.concat([4,5]);//=>[1,2,3,4,5];
a.concat([4,5],[6,7]);//=>[1,2,3,4,5,6,7]
a.concat(4,[5
,[6,7]]);//=>[1,2,3,4,5,[6,7]];

slice();

slice()方法返回指定陣列的一個片段或子陣列,它的兩個引數分別指定了片段的開始和結束的位置,返回的陣列包含第一個引數指定的位置和所有到但不包含第二個引數指定的位置之間所有的陣列元素,如果只指定一個引數,則返回的陣列將包含從開始位置到陣列結尾的所有元素.如果引數中出現負數,它表示相對於陣列中最後一個元素的位置,例如,引數-1指定了最後一個元素,而-3指定了倒數第三個元素

var a=[1,2,3,4,5];
a.slice(0,3);//返回[1,2,3];從0位置到第4個位置(不包括第4個位置);
a.slice(3);//[4,5];
a.slice(1,-1);//[2,3,4];
a.slice(-3,-2);//[3]

splice();

splice()方法是再陣列中插入或刪除元素中的通用方法,splice()會修改呼叫的陣列,

push()和pop()

push()方法是在陣列的尾部新增一個或者多個元素,並返回陣列新的長度,pop()方法則相反,它刪除陣列的最後一個元素,減小陣列長度並返回它刪除的值,這兩個方法都修改並替換原始陣列而非生成一個修改版的新陣列;

var a=[];
a.push(1,2);//[1,2];
a.pop();//[1]
a.push([4,5]);//[1,[4,5]];

unshift()和shift()

這兩個方法行為和push()和pop()方法很類似,不同的是這兩個方法是對陣列的頭部進行元素的插入和操作,unshift()在陣列頭部新增一個或多個元素;shift()刪除陣列頭部元素;

var a=[];
a.unshift(1);//[1]
a.unshift(22);//[1,22]
a.shift();//[22]

這兩個方法可以和push(),pop()方法相結合,例如做一個瀏覽歷史功能,最多儲存5個瀏覽記錄,多了就刪除最先進入的那個,然後再新增進去最新的瀏覽記錄

	//假入說陣列history就是儲存記錄的陣列
	var length=history.length;//陣列的長度
	if(length<5){
		history.push({"瀏覽記錄"});//把最新的瀏覽記錄儲存進去
	}else{
		history.pop();
		history.unshift({"瀏覽記錄"});
		//或者
		history.shift();//刪除頭部第一個
		history.push({"瀏覽記錄"});//新增到尾部一個最新陣列
	}