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()的做用相似,不過方向相反而已。