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