Array類型II 數組用到的一些方法

concat()方法
數組

這個方法會建立當前數組一個副本,而後將接收到的參數添加到這個副本的末尾,最後返回新數組。沒有傳遞參數的狀況系 ,它只是複製當前數組並返回副本。函數

    var color = ["red","green","blue"];
    var color2 = color.concat("yellow",["black","gray"]);
    alert(color2); //red,green,blue,yellow,black,gray

slice()方法
code

這個方法能夠接受一或兩個參數,即要返回項的起始和結束位置。在只有一個參數的狀況下,slice()方法返回從該參數指定位置開始到當前數組末尾的全部項。若是有兩個參數,返回起始和結束位置之間的項(不包括結束位置的項),slice()方法不會影響原始數組。對象

var color = ["red","green","blue"];
var color2 = color.slice(1);
var color3 = color.slice(0,2);
alert(color2);  //green,blue
alert(color3);	//red,green
alert(color);	//red,green,blue

splice()方法索引

有不少種用法,主要用途是向數組的中部插入項。ip

-刪除:指定2個參數,要刪除的第一項的位置,要刪除的項數。作用域

var color = ["red","green","blue"];
var color2 = color.splice(0,1);
alert(color2);  //red  
alert(color);	//green,blue

-插入:指定3個參數,起始位置,0(要刪除的項數),要插入的項。it

var color = ["red","green","blue"];
var color2 = color.splice(1,0,"yellow","pink","black"); //在位置1前插入
alert(color2);  //沒有刪除項,因此返回一個空數組  
alert(color);	//red,yellow,pink,black,green,blue

-替換:指定3個參數,起始位置,要刪除的項,要插入的項。io

var color = ["red","green","blue"];
var color2 = color.splice(1,2,"yellow","pink","black");
alert(color2);  //green,blue 
alert(color);	//red,yellow,pink,black


indexOf()方法 和 lastIndexOf()方法
for循環

這兩個方法從接收兩個參數:要查找的項,表示查找起點位置的索引(可選)。indexOf()方法從數組的開頭向後查找,lastIndexOf()方法則從數組的末尾向前查找。

這兩個方法都返回要查找的項在數組中的位置,沒找到的狀況下返回-1.

var color = ["red","green","blue"];

alert(color.indexOf("green"));  //1
alert(color.indexOf("green",2))	//-1 找不到,返回-1

alert(color.lastIndexOf("red")); //0
alert(color.lastIndexOf("green",0)) //-1



迭代方法:ECMAScript5爲數組定義了5個迭代方法。每一個方法都接收兩個參數:要在每一項上運行的函數,運行該函數的做用域對象(可選)

    而傳入這些方法中的函數會接收三個參數:數組項的值,該項下數組中的位置,數組對象自己

    every():檢測數組中的每一項是否符合條件,每一項都返回true,則返回true 

var num = [1,2,3,4,5];
var result = num.every(function(item,index,array){
	return(item > 0);
});
alert(result); //true

   

     some():檢測數組中的某一項是否符合條件,只要某一項返回true,則返回true

var num = [1,2,3,4,5];
var result = num.some(function(item,index,array){
	return(item > 4);
});
alert(result); //true


    filter():篩選出數組中符合條件的項,即返回true的項,返回這些項組成的新數組

var num = [1,2,3,4,5];
var result = num.filter(function(item,index,array){
	return(item > 2);
});
alert(result); //3,4,5

    

    map():對數組的每一項運行傳入的函數,對應項得出的結果產生一個新數組

var num = [1,2,3,4,5];
var result = num.map(function(item,index,array){
	return (item * 2);
});
alert(result); //2,4,6,8,10

    

    forEach():對數組中的每一項運行傳入的函數。沒有返回值,本質上與使用for循環迭代數組同樣

var num = [1,2,3,4,5];
var result = num.forEach(function(item,index,array){
	return (item);
});
alert(result); //undefined



兩個縮小數組的方法:reduce() 和 reduceRight()方法

這兩個方法都會迭代數組的全部項,而後構建一個最終返回的值。reduce()方法從數組的第一項開始,逐個遍歷到最後,reduceRight()方法則從數組最後一項開始往前遍歷到第一項。

這兩個方法都接收兩個參數:一個在每一項調用的函數,做爲縮小基礎的初始值(可選)

調用的函數接收4個參數:前一個值,當前值,項的索引,數組對象

var num = [1,2,3,4,5];
var result = num.reduce(function(prev,cur,index,array){
	return (prev*cur);
});
alert(result); //120 =1*2*3*4*5

reduceRight()的做用相似,不過方向相反而已。

相關文章
相關標籤/搜索