JavaScript数组最常见方法,你一定要知道!

JavaScript数组最常见方法

今天给大家分享几种数组Array常见的方法:
为了方便理解,我把几种方法进行了分类,主要分为两大类,一类为会修改原数组,一类为不会修改原数组,两大类中又根据不同功能依次排列。
首先,我们先看会使原数组发生改变的数组方法:
## push():
数组末尾新增一个或多个元素,并返会该数组的长度。

var arr = [1,2,3];
          var newarr = arr.push(4);
          console.log(arr);             // [1,2,3,4]
          console.log(newarr);      // 4

## pop():
数组最后一位删除,并返会被删除的元素。

var arr = [1,2,3];
          var newarr = arr.pop();
          console.log(arr);   //[1,2]
          console.log(newarr);   //[3]

## unshift():
数组第一位新增,并返会数组的新长度。

var arr = [1,2,3];
          var newarr = arr.unshift(0);
          console.log(arr);    //[0,1,2,3]
          console.log(newarr);   //4

## shift():
数组第一位删除,并返会删除的元素。

var arr = [1,2,3];
          var newarr = arr.shift();
          console.log(arr);     //[2,3]
          console.log(newarr);  //[1]

splice(index1,index2,a):
删除或替或者添加新的元素来修改数组,并以数组形式返回被修改的内容
(从index1开始,删除index2个,并添加a元素)
下面的案例可以看出,数组从1开始,删除2个,所以“red”和“black”被删除,同时将“yellow”进行添加。不过我们也可以发散思维,将前两个数值设置成0,可以对数组进行添加工作。

var arr = ["blue","red","blck","pink"];
          var newarr = arr.splice(1,2,"yellow");
          console.log(arr);   // [ "blue", "yellow", "pink" ]
          console.log(newarr);   //[ "red", "blck" ]
var arr = ["blue","red","blck","pink"];
          var newarr = arr.splice(0,0,"yellow");
          console.log(arr);//[ "yellow", "blue", "red", "blck", "pink" ]
          console.log(newarr);//[]

sort():
对数组进行排序,排序方式是将元素转换成字符串并按照Unicode的位点进行排列。

var arr = [34,656,3,5,7,1,0];
          var newarr = arr.sort();
          console.log(arr);  // [ 0, 1, 3, 34, 5, 656, 7 ]
          console.log(newarr);// [ 0, 1, 3, 34, 5, 656, 7 ]

reverse():
将数组进行翻转,并且返回新数组

var arr = [1,2,3,4];
          var newarr = arr.reverse();
          console.log(arr);
          console.log(newarr); //[ 4, 3, 2, 1 ]

下面的是不会影响原数组的一些数组方法:
slice(index1,index2):
返回一个新的数组对象,这一对象是一个由index1 和index2 决定的原数组的浅拷贝(包括 index1,不包括index2)。
实现方法即为,从index1进行选取,到index2结束。有关浅拷贝的内容会在后面的文章分享,可以理解为截取。

 var arr = [1,2,3,4];
          var newarr = arr.slice(1,4);
          console.log(arr);
          console.log(newarr);  //[2,3,4]

toString():
将数组转成字符串并返回。

var arr = [1,2,3,4];
          var newarr = arr.toString();
          console.log(newarr); //1,2,3,4

join():
将数组所有元素连接成一个字符串并返回这个字符串。如果数组只有一个元素,那么将返回该元素而不使用分隔符。
从这里我们可以总结出:可以将数组转换成字符的方法有两种即:join和toString

var arr = [1,2,3,4];
          var newarr = arr.join("-");
           var newarr1 = arr.join("");
          console.log(newarr);//1-2-3-4
          console.log(newarr1);//1234

下面是有关 ES5的数组方法集合
indexOf(searchelement,num):
通过indexOf我们可以查找相应元素的索引,根据num数值我们也可以固定从某个位置开始查找,当数组内找不到该元素是就返回“-1”。利用这一特性我们可以多个操作,比如数组查重。

 var arr = [1,2,3,4];
          var newarr = arr.indexOf(2);
          var newarr1 = arr.indexOf(8);
          console.log(newarr);  //1
          console.log(newarr1);  //-1

lastindexOf(searchelement,num):
反向数组查找,从数组的末位开始查找,但返回的索引仍是正序的。

var arr = [1,2,3,4];
          var newarr = arr.lastIndexOf(3);
          console.log(newarr);//2

forEach(callback):
遍历数组的专属方法,回调函数内含有三个值分别:function(vaule,index,self){ }vaule:值,index:索引,self:数组本身。在函数内对三个值进行操作可以实现相应的功能。其返回值为undefind

 var arr = [1,2,3,4];
          var newarr = arr.forEach(function (vaule,index,self){
                 console.log(vaule,index,self);
          });
           //1 0 Array(4) [ 1, 2, 3, 4 ]
          //2 1 Array(4) [ 1, 2, 3, 4 ]
         //3 2 Array(4) [ 1, 2, 3, 4 ]
        //4 3 Array(4) [ 1, 2, 3, 4 ]         

filter(callback):
数组条件筛选,filter同forEach一样,需要利用回调函数,仅当函数的返回值为true时才会将遍历到的值放到新数组中,若返回值为false则跳过。

var arr = ["red","black","pink","green"];
          var newarr = arr.filter(function (vaule,index,self){
               return vaule.length >4   //true
          });
          console.log(newarr);   //[ "black", "green" ]
var arr = ["red","black","pink","green"];
          var newarr = arr.filter(function (vaule,index,self){
               return typeof vaule == "number"   //false
          });
          console.log(newarr);   //[]

map(callback):
map方法可以用来获取数组中的数据,操作,并返回成新数组

var arr = ["red","black","pink","green"];
          var newarr = arr.map(function (vaule,index,self){
               return vaule +"haha"   
          });
          console.log(newarr);//[ "redhaha", "blackhaha", "pinkhaha", "greenhaha" ]

今天分享的内容就到这里啦,不知道今天的案例,是否能帮到您呢?列举的案例大都是基础内容,想要熟练掌握还要勤加练习,时间匆忙,如有不足之处还请博友可以不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值