转载:数组要领总结

在这里总结一下JS的数组要领:

1、join()

Array.join()要领将数组中一切元素都转化为字符串并衔接在一起,返回末了剩成的字符串。Array.join()要领是String.split()要领的逆向操纵,后者是将字符串分割为多少块来建立一个数组。

var a=[1,2,3];//建立一个包含三个元素的数组
a.join();//=>"1,2,3"
a.join(" ");//=>"1 2 3"
a.join("");//=>"123"
var b=new Array(10);//长度为十的空数组
b.join('-');//=>'---------':9个-构成的字符串

2、reverse()

Array.reverse()要领将数组中的元素倒置递次,返回逆向数组。他不重新建立一个新的数组,只是在本来的数组里将元素重新排列。

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

3、sort()

javascript数组要领Array.sort()要领将中的元素排序并返回排序后的数组。当不带参数挪用sort()时,数组数组元素以字母表递次排序(若有必要将暂时转化为字符串举行比较)。为了根据其他体式格局而非字母表递次举行排序,必需给sort()通报一个比较函数。

var a=new Array("b","c","a");
a.sort();
var s=a.join(",");//s=="a,b,c"
//默许要领
//由大到小排序,能够参照上面解题答案中。

4、concat()

Array.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]]

5、slice()

Array.slice()要领返回指定数组的一个片断或一个子数组,他的两个参数分别是指定的片断的最先和引见位置。返回的数组包含第一个参数指定的位置到第二参数的指定位置间一切元素但不包含第二个参数所指的位置的元素,假如只要一个参数,则返回从最先位置到末了一个元素。假如参数是负数,示意相对于数组中末了一个元素的位置,即-1指定了末了一个元素,-3指定倒数第三个元素。注重,slice()不会修正挪用的数组。

var a=[1,2,3,4,5];
a.slice(0,3);//返回[1,2,3]
a.slice(3);//返回[4,5]
a.slice(1,-1);//返回[2,3,4]
a.slice(-3,-2);//返回[3]

6、splice()

Array.splice()要领是在数组中插进去或删除元素的通用要领。splice()会修正挪用的数组。splice()的第一个参数指定的插进去或(和)删除的肇端位置,第二个参数指定的应删除的个数,若第二个参数为空,则从肇端位置到数组末端。splice()前两个参数指定了须要删除的数组元素,紧随其后的多少个参数为须要插进去到数组的元素,从第一个参数指定的位置最先插进去。

var a=[1,2,3,4,5,6,7,8];
a.splice(4);//返回[5,6,7,8],a是[1,2,3,4]
a.splice(1,2);//返回[2,3],a是[1,4]
a.splice(1,1);//返回[4],a是[1]
//
var a=[1,2,3,4,5,6,7,8];
a.splice(1,0,"a","c",[1,2]);//返回[],a是[1,2,'a','c',[1,2],3,4,5,6,7,8]

7、push()和pop()

push()和pop()要领许可将数组当作栈来运用,push()要领在数组的尾部增加一个或多个元素,并返回数组新的长度。pop()删除末了一个元素,削减数组长度,并返回它删除的值。两个要领都修正并替代原始数组。

var a[];
a.push(1,2);//返回2,a:[1,2]
a.pop();//返回2,a:[1]
a.push([1,2]);//返回2,a:[1,[1,2]]
a.pop();//返回[1,2],a:[1]

8、toString()和toLocaleString()

toString()要领将数组每一个元素转化为字符并输出用逗号分开的字符串列表,输出不包含方括号和其他情势的包裹数组值得分开符。toLocaleString()是toString()的本地化版本。

[1,2,3].toString() //天生'1,2,3'
["a","b",3].toString() //天生'a,b,3'
[1,[2,3]].toString() //天生'1,2,3'

ECMAScript 5中的数组要领:

1、forEach()

forEach()要领自始至终遍历数组,并为每一个元素挪用指定的函数。

var a=[1,2,3,4,5];
var sum=0;
a.forEach(function(value){sum+=value;});//将每一个元素累加到sum
sum //=>15
a.forEach(function(v,i,a){a[i]=v+1;});//元素自加1
a //=>[2,3,4,5,6]

2、map()

map()要领将挪用的数组每一个元素通报给指定的函数,并返回一个数组,它包含该函数的返回值。

a=[1,2,3];
b=a.map(function(x){return x*x;});
//b [1, 4, 9],a[1,2,3]

3、filter()

filter()要领返回的数组元素是挪用数组的一个子集,通报的函数是用来逻辑剖断的:该函数返回true或false;假如返回值为true或能转化为true的值,那末通报给剖断函数的元素就是这个子集的成员,他将被增加到一个作为返回值得函数中。

a=[5,4,3,2,1];
b=a.filter(function(x){return x<3});//[2,1]

4、every()和some()

every()和some()要领是数组的逻辑剖断:他们对数组元素运用指定的函数举行剖断,返回true或false。every()要领只要说有元素返回true时,返回true,相当于&;some()要领只要一切元素返回false时返回false,相当于|。

a=[1,2,3,4,5];
a.every(function(x){return x<10;});//=>true:全都小于10
a.every(function(x){return x%2===0;});//=>flase:不是一切的元素都是偶数
a.some(function(x){return x%2===0;});//=>true:a内里含有偶数
a.some(function(x){return x>10;});//=>false:全都不大于10

5、reduce()和reduceRight()

reduce()和reduceRight()要领运用指定的函数将数组元素举行组合,天生单个值。reduce()须要两个参数,第一个是其运用的要领,第二个是可选参数,是一个通报给函数的初始值,当第二个参数为空时,意味着第一次挪用函数就运用了第一个和第二个数组元素作为其第一个第二个参数,根据数组索引从低到高。reduceRight()的事情道理一样,差别的是它根据数组索引由高到低处置惩罚数组,即从数组右边最先。

var a=[1,2,3,4,5];
var sum=a.reduce(function(x,y){return x+y},0);//数组乞降
var p=a.reduce(function(x,y){return x*y},1);//数组求积
var max=a.reduce(function(x){return (x>y)?x:y;});//求最大值

6、indexOf()和lastIndexOf()

indexOf()和lastIndexOf()搜刮全部数组中具有给定值得元素,返回找到的第一个元素的索引或许没有找到就返回-1。indexOF()是自始至终,而lastIndexOf()则反向搜刮。indexOf()和lastIndexOf()要领不接受一个函数作为其参数。第一个参数是须要搜刮的值,第二个参数是可选的,他指定数组中一个索引,从哪最先搜刮。若第二个参数为负,他代表相对数组的末端元素的偏移量。

a=[0,1,2,1,0];
a.indexOf(1);//=>1 a[1]=1
a.lastIndexOf(1);//=>3 a[3]=1
a.indexOf(3);//=>-1
//
//在数组中查找一切的x,并返回一个包含婚配索引ed数组
function findall(a,x){
    var results=[];//将返回的数组
    len=a.length;//待搜刮数组的长度
    pos=0;//最先搜刮的位置
    while(pos<length){
    pos=a.indexOf(x,pos);
    if(pos===-1) break;
    results.push(pos);
    pos+=1;
    }
    return results;
}
    原文作者:weiweismile
    原文地址: https://segmentfault.com/a/1190000009644265
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞