资讯专栏INFORMATION COLUMN

转载:数组方法总结

xiaokai / 3002人阅读

摘要:若参数是数组,则链接的事数组元素。和和方法是数组的逻辑判定他们对数组元素应用指定的函数进行判定,返回或。全都小于不是所有的元素都是偶数里面含有偶数全都不大于和和方法使用指定的函数将数组元素进行组合,生成单个值。

在这里总结一下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           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83291.html

相关文章

  • Java 集合总结(Collection系列与Map系列)

    摘要:前言原文在点这里,这也是作者的个人网站,希望多多支持,对于作者而言,集合主要分为两个派系,一个是系列,一个是系列。的线程安全版本,内部的实现几乎和一模一样。也是的线程安全版本,并且使用了分段加锁机制,所以效率上要比要好很多。 前言 原文在: 点这里,这也是作者的个人网站,希望多多支持,O(∩_∩)O~ 对于作者而言,Java 集合主要分为两个派系,一个是 Collection 系列,一...

    zhou_you 评论0 收藏0
  • 基础 - 收藏集 - 掘金

    摘要:的语言的动态性意味着我们可以使用以上种数据类型表示变换过渡动画实现案例前端掘金以下所有效果的实现方式均为个人见解,如有不对的地方还请一一指出。 读 zepto 源码之工具函数 - 掘金Zepto 提供了丰富的工具函数,下面来一一解读。 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性。目标对象的同名属性会被源对象的属性...

    wuaiqiu 评论0 收藏0
  • 数组操作--微信小程序学习教程

    摘要:修改数组这个参数的具体作用,请参考微信小程序官方提供的说明,地址为在通过在页面里使用传递过来的,是为识别正在编辑修改哪个数组。我们也会不定期发布一些微信小程序的学习教程。 前言 相信在小程序推出公测之后,很多小伙伴都已经抓紧申请注册小程序了。在开发阶段中也碰到了很多的问题,例如wx.request数据请求不成功,在数组操作时,不知道如何往数组里push数据,input如何监听用户输入的...

    stdying 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<