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