数组常用方法

数组常用的方法

1、push();

作用: 在数组的尾部添加一个或多个元素,返回新长度

1 var arr = [1,2,3,4,5,6];
2 var arr1 = arr.push(1);
3 console.log(arr1)//显示结果7

 

2、pop();

作用:将数组的最后一个元素删除,返回被删除的元素

删除最后一个元素,也可以用array.length-1;就是把数组的长度减一,然后就能实现删除最后一个元素的效果了。

区别:array.length-1速度更快,但是没返回值,也就是说删的什么就不知道了。

var arr = [1,2,3]
var arr1 = arr.pop()
console.log(arr1)//显示结果3

 

3、unshift()

作用:在数组的头部添加一个或多个元素,返回新长度

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

 

4、shift()

作用:将数组的第一个元素删除,返回被删除的元素

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

//注:添加/删除元素,splice()也可以做到,详细下文说。

5、concat()

作用:数组和数组/元素合并,返回新数组,原数组不会发生变化

语法:arrar1.concat(array)

注意:

①可以合并元素,类似arrar1.concat(array,1,2,3);

②可使用arrar1.concat()复制数组;

      var arr = [1, 2, 3];
      var arr1 = [4, 5];
      var arr2 = arr.concat(arr1);
      console.log(arr2); //[1,2,3,4,5]

 

6、join()

作用,把数组转换为字符串,默认“,”分隔;

注意:

①当传入的链接符为“”(空字符)时,会将数组元素首尾相连返回字符串

②想把数组转换为字符串也可以用toString();效果相同。

      var arr = [1, 2, 3];
      var arr1 = arr.join("|");
      console.log(arr1); //1|2|3

 

7、splice(startIndex,delNum,addEle)

// startIndex为开始下标,delNum为删除的元素个数,addEle为添加的元素,可多个

作用:可实现增、删、改。返回被删除的元素组成的新数组

简单的说就是从startIndex下标开始,按delNum的数值删除元素个数,然后再加addEle补在这个位置,addEle不是说只是一个元素,他可以多个,多少都行。

注:

①没有任何参数时,返回空数组,var arr1 = arr.splice();

②只有0,var arr1 = arr.splice(0);将所有元素转移到新数组,就是说原数组被删空了,就是从位置0删到底,返回删除元素组成的新数组

③开始位置可以为负数,索引方向会变成后->前

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

      var arr2 = arr.splice(0)
      console.log(arr2,arr); //[1,2,3] 此时的arr为[]
      
      var arr3 = [1,2,3]
      var arr4 = arr3.splice(0,1,2);
      console.log(arr4); //[1]

 

8、slice(fromindex,toindex) 

// fromindex为开始下标,toindex为结束下标

作用:数组截取,截取一段数组,从fromindex截取到toindex,不含toindex。即“前包后不包“

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

 

9、把类似于数组的列表(这里的arr)转换为数组

①from()

语法:Array.from(arr)(es6写法)

②array.prototype.slice.call(arr) (es5写法)

注意:两个写法的作用相同

 

10、indexof()  

作用:查元素是否在数组内,返回对应下标,查不到的时候,返回-1;

      var arr = [1,2,1, 3];
      var arr1 = arr.indexOf(1,0);
      console.log(arr1); //indexOf(1,0);1为查的元素,0为开始检索下标,返回第一次检索到的下标,这里是0

 

11、lastindexof()

作用:和indexof()相同,查元素是否在数组内,返回对应下标,查不到的时候,返回-1,不过lastindexof()是反向检索,就是从最后一个元素开始检索

 

12、遍历数组

①foEach()

arr.forEach(function(item,index,arr){

//添加不了return

//没返回值

})

      var arr = [1,2,1, 3];
      var arr1 = arr.forEach(function(item){
        console.log(item)
      });
      console.log(arr1); //打印元素1 2 1 3

 

②map()

arr.forEach(function(item,index,arr){

//可以添加return

//有返回值,返回长度和原数组相同

//ie8以上支持

})

      var arr = [1,2,1, 3];
      var arr1 = arr.map(function(item){
        console.log(item)
      });
      console.log(arr1); //打印元素1 2 1 3,并且会有返回一个数组,长度为4,元素全是undefined

 

13、sort()

作用:数组排序

①array.sort(function(a,b){

//return a-b;表示从小到大

//return b-a;表示从大到小

//只适用用数值型

})

②arr.sort(function(a,b){

//return a.charcodeat(0)-b.charcodeat(0);表示从小到大

//return b.charcodeat(0)-a.charcodeat(0);表示从大到小

//适用字符型

})

      var arr = [1,2,1, 3];
      var arr1 = arr.sort(function(a,b){
        return a-b
      });
      console.log(arr1); //[1,1,2,3]

 

14、some()

作用:遍历数组判断条件,只要有一个元素满足条件,则返回true,否则返回false;

语法:arr. some (function(item,index,arr){

return 条件;

})

      var arr = [1,2,1, 3];
      var arr1 =arr.some(function(item,index,arr){
        return item>2;
      })
      console.log(arr1); //true

 

15. every() 

作用:遍历数组判断条件,所有元素都满足条件,返回true,只要有一个不满足则返回false;

语法:arr.every(function(item,index,arr){

return 条件;

})

      var arr = [1,2,1, 3];
      var arr1 =arr.every(function(item,index,arr){
        return item>2;
      })
      console.log(arr1); //false

 

16、filter()

作用:过滤,筛选数组中满足条件的元素,返回所有满足条件的元素

arr.filter(function(item,index,arr){

return 条件;

})

      var arr = [1,2,1, 3];
      var arr1 =arr.filter(function(item,index,arr){
        return item>1;
      })
      console.log(arr1); //[2,3]

 

17、reduce()

作用:遍历数组,返回value的值

语法:arr.reduce(function(value,item,index,arr){

console.log(value,item,index,arr)

},startvalue)

注:

startvalue可以写,也可以没有;

① startvalue没有时,value刚开始是arr[0];之后都是undefined;可通过return value,把上一次的返回值在下一次遍历的时候赋给value

② 有startvalue时,value刚开始是startvalue,一样可通过return value,把上一次的返回值在下一次遍历的时候赋给value

      var arr = [1,2,1, 3];
      var arr1 =arr.reduce(function(value,item,index,arr){
        console.log(value)
      })
      console.log(arr1); //1 undefined undefined undefined

 

18、判断是不是数组

① Array.isArray(arr)

//这种事Es6写法

②首先数组是对象,用typeof判断确定为对象

然后要与对象区分,通过转换为字符串

数组.toString()——>字符串(显示的数组内容)

对象.toString()——>字符串([string string])

③ 判断数组的构造函数是数组

arr.constructor===Array

posted @ 2020-03-29 14:57  ljYYYY  阅读(175)  评论(0)    收藏  举报