标签:javascript 数组 array
方法名 | 功能 | 示例 | |
栈方法和队列方法 | push() | 1、和pop() 方法一块可以实现让数组像栈一样“后进先出”; 2、和shift()方法一块可以实现让数组像队列一样“先进先出”; 3、push()方法可以接受任意数量的参数,把它们逐个添加到数组的末尾,同时增加数组的 length值。 | var colors = ["red","green"]; colors.push("blue",["yellow","pink"]); alert(colors); //red,green,blue,yellow,pink |
pop() | pop()方法从数组的末尾移出最后一项,同时返回该项,并且数组的length 减一。 | var colors = ["red","green","blue"]; var item = colors.pop(); alert(item);//blue alert(colors.length);//2 | |
shift() | shift()方法删除数组的第一项同时放回该项,并且数组的length 减一。 | var colors = ["red","green","blue"]; var item = colors.shift(); alert(item);//red alert(colors.length);//2 | |
unshift() | 1、unshift()方法从数组的头部添加任意个项,并返回新数组的长度。 2、与pop()方法结合使用,可以从相反的方向模拟队列,即从头部添加,尾部删除。 | var colors = ["red"]; var count = colors.unshift("green","blue"); alert(count);//3 alert(colors);//green,blue,red | |
重排序方法 | reverse() | reverse()方法反转数组的项的顺序,即头变成尾,尾变成头。 | var colors = ["red","green","blue"]; colors.reverse(); alert(colors);//blue,green,red |
sort() | 1、sort()方法调用数组中每一项的tostring()方法,然后对得到的字符串进行比较。 2、要想实现数字从大到小或者从小到大的方式排列,sort()方法需接收一个比较函数作为参数。 | 1、 var arr = ["cgf","fbi","abc","a","fly"]; arr.sort(); alert(arr);//a,abc,cgf,fbi,fly 2、 function compare(value1,value2){ if(value1 > value2){ return 1; //返回任意一个正数即可 }else if(value1 < value2){ return -1;//返回一个负数即可 }else{ return 0; } } /**如果想要实现从大到小的顺序排列,只需当 *value1 > value2 时,返回 一个负数,当 *value1 < value2 时,返回一个正数。**/ var arr = [15,1,35,156]; arr.sort(compare); alert(arr);//1,15,35,156 | |
操作方法 | concat() | concat()方法基于当前数组中的所有项创建一个新数组,如果传入一个或者多个数组的话,该方法会将这些数组中的每一项添加到结果数组中。原数组不变。 | var colors = ["red","green"]; var colors2 = colors.concat(); alert(colors2);//red,green var colors = ["red","green"]; var colors2 = colors.concat("blue",["pink","black"]); alert(colors2);//red,green,blue,pink,black |
slice() | slice()方法可以接受一个和两个参数,即要返回项的起始和结束位置。当只有一个参数时,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项;如果有两个参数,该方法返回起始位置和结束位置之间的项(但不包括结束位置的项)。(索引值从0开始)原数组不变。 | var colors = ["red","green","blue","pink","grey"]; var colors2 = colors.slice(2); var colors3 = colors.slice(1,4); alert(colors);//red,green,blue,pink,grey alert(colors2);//blue,pink,grey alert(colors3);//green,blue,pink | |
splice() | 1、删除 指定两个参数,要删除的第一项的位置和要删除的项数。 2、插入 可以向指定的位置插入任意数量的项,需要三个参数,起始位置、要删除的项数(此处为0)和要插入的项。如果要插入多个项,可以再传递第四个第五个以至任意多个项。 3、替换 传入3个参数,跟插入的参数一样 | var colors = ["red","green","blue"]; var removed = colors.splice(0,1);//删除第一项 alert(colors);//green,blue alert(removed);//red //从位置1开始插入两项 removed = colors.splice(1,0,"yellow","pink"); alert(colors);//green,yellow,pink,blue alert(removed);//返回一个空数组 //从位置1删除一项,插入两项 removed = colors.splice(1,1,"purple","black"); alert(colors);//green,purple,black,pink,blue alert(removed);//yellow | |
位置方法 | indexOf() | 这两种方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。 其中,indexOf()方法是从数组的开头(位置0)开始向后查找,lastIndexOf()方法是从数组的末尾开始查找。 这两个方法都返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1.在比较第一个参数与数组中的每一项时,会使用全等操作符,也就是说,要求查找的项必须严格相等。 | var numbers = [1,2,3,4,5,6,4,5,3,2,1]; alert(numbers.indexOf(4));//3 alert(numbers.indexOf(4,5));//6 alert(numbers.lastIndexOf(4));//6 alert(numbers.lastIndexOf(4,5));//3 var person = {name: "liming"}; var people = [{name: "liming"}]; var anotherPerson = [person]; alert(people.indexOf(person));//-1 alert(anotherPerson.indexOf(person));//0 |
lastIndexOf() | |||
迭代方法 | every() | 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true | var numbers = [1,2,3,4,6,5,4,3,2,1]; var everyResult = numbers.every( function(item){ return(item>3); }); alert(everyResult);//false var filterResult = numbers.filter( function(item){ return (item>3); } ); alert(filterResult);//4,6,5,4 var forEachResult = numbers.forEach( function(item){ return (item>3); } );//该方法没有返回值,本质与for循环迭代数组一样 var mapResult = numbers.map( function(item){ return (item*2); }); alert(mapResult);//2,4,6,8,12,10,8,6,4,2 var someResult = numbers.some( function(item){ return (item>3); }); alert(someResult);//true |
filter() | 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。 | ||
forEach() | 对数组中的每一项运行给定函数,该方法没有返回值。 | ||
map() | 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。 | ||
some() | 对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。 | ||
reduce() | 这两个方法都会迭代数组的所有项,然后构建一个最终返回的值其实就是将数组中的每一项累加起来。 其中reduce()方法从数组的第一项开始,逐个遍历到数组的末尾。而ruduceRight()方法则从最后一项开始,向前遍历至第一项。 这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为缩小基础的初始值。 | var arr = [1,2,3,4,5,6]; //传入一个回调函数 var reduce1 = arr.reduce( function(pre,cur,index,array){ return pre + cur; }); alert(reduce1);//21 var reduceRight1 = arr.reduceRight( function(pre,cur,index,array){ return pre + cur; }); alert(reduceRight1 );//21 //传入两个参数,一个是回调函数一个是初始值10 var reduce2 = arr.reduce( function(pre,cur,index,array){ return pre + cur; },10); alert(reduce2);//31 var reduceRight2 = arr.reduceRight( function(pre,cur,index,array){ return pre + cur; },10); alert(reduceRight2);//31 | |
reduceRight() |
本文出自 “Fcheng” 博客,请务必保留此出处http://fcheng.blog.51cto.com/10644114/1838560
标签:javascript 数组 array
原文地址:http://fcheng.blog.51cto.com/10644114/1838560