数组常用的几个方法

数组常用的几个方法 刘东兵

数组大家都不陌生,数组我们经常用来保存各种数据。面试的时候也非常爱问数组方面的问题,今天我们就来说说数组常用的几个方法。首先什么是数组,数组是单独使用变量来储存一系列的值。

我们来简单介绍一下几个常用的数组方法。

1.push() 方法

push() 方法是向数组末尾添加一个或多个元素,返回一个新的数组,代码如下:

var array=[1,2,3]
array.push(4);
console.log(array) //输出[1,2,3,4]

2.sort() 方法

sort()方法是对数组进行排序,可以数字也可以字母,代码如下:

//数字
var array = [1, 201, 32, 15, 32, 54]
array.sort(function (a, b) { return a - b });  //数字排序需要一个回调函数
console.log(array) //输出 [1,15,32,32,54,201]

//字母排序针对首字母

var array = ["a","c","r","v","k","b"]
array.sort();
console.log(array) //输出 ["a", "b", "c", "k", "r", "v"]

3.indexOf() 方法

indexOf()方法是查找数组中元素所在的位置,存在返回下标,不存在返回-1。代码如下:

var fruits = ["香蕉", "橙子", "苹果", "甜瓜"];
var a = fruits.indexOf("苹果")
var b = fruits.indexOf("西瓜")
console.log(a) //输出下标2
console.log(b) //不存在 输出-1

4.concat() 方法

concat()方法是数组合并的方法,可以1个或者合并多个数组。代码如下:

var arr = ["小李", "潇潇"];
var arr2 = ["渣渣", "老万", "老贵"];
var newarr = arr.concat(arr2);
console.log(newarr);//输出["小李", "潇潇", "渣渣", "老万", "老贵"]

5.copyWithin() 方法

copyWithin(0 方法复制数组到指定位置的方法三个参数,参数1复制到那的位置,参数2开始复制的位置,参数3结束复制的位置,这里的位置都是指下标。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
var newarr = arr.copyWithin(2, 0, 2);
console.log(newarr);//输出["渣渣", "老万", "渣渣", "老万", "潇潇"]

6.includes() 方法

includes()方法是检验数组中是否包含元素,包含返回true,否返回false。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
 var newarr=arr.includes("渣渣")
console.log(newarr);//返回true

7.isArray()方法

isArray是检查对象是否是数组,返回布尔。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
 var newarr = Array.isArray(arr)
 console.log(newarr);//返回true

8.join方法

join()方法是把数组里的元素转成一个字符串,参数是连接符。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
var newarr = arr.join("+")
console.log(newarr);//返回 渣渣+老万+老贵+小李+潇潇

9.pop()方法

pop()方法是删除数组里的最后一个元素并返回新数组。代码如下:

var arr=[1,2,3,4,5]
arr.pop();
console.log(arr) //输出[1,2,3,4]

10.reverse()方法

reverse()方法是颠倒数组即把数组逆序。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
var newarr = arr.reverse()
console.log(newarr);//返回 ["潇潇", "小李", "老贵", "老万", "渣渣"]

11.shift()方法

shift()方法是删除数组的第一个元素。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
arr.shift()
console.log(arr);//返回 ["老万", "老贵", "小李", "潇潇"]

12.unshift()方法

unshift()方法是向数组开头添加一个或多个元素。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
arr.unshift("路人甲","炮灰乙")
console.log(arr);//返回 ["路人甲", "炮灰乙", "渣渣", "老万", "老贵", "小李", "潇潇"]

13.slice()方法

slice()方法数选取原数组中的元素创建成一个新数组。注意slice()方法不会改变原数组。代码如下:

var arr = ["渣渣", "老万", "老贵", "小李", "潇潇"];
var newarr=arr.slice(1,3)//从1下标开始截取,截止到3下标,但不包含3下标元素
console.log(newarr);//返回 ["老万", "老贵"]

14.splice()方法

splice()方法用于插入,删除或替换数组元素。注意这种方法会改变原始数组。代码如下:

插入示例代码:

var arr = ["李龙", "老万", "老贵", "小李", "潇潇"];
arr.splice(1,0,"李海") //参数1开始插入或删除的下标必填,参数2是删除的长度不删除就写0,参数3是插入的内容可不填即不插入
console.log(arr);//返回  ["李龙", "李海", "老万", "老贵", "小李", "潇潇"]

删除示例代码:

var arr = ["李龙", "老万", "老贵", "小李", "潇潇"];
 arr.splice(1,2) //从1下标开始删除,删除2个长度
 console.log(arr);//返回  ["李龙", "小李", "潇潇"]

替换示例代码:

var arr = ["李龙", "老万", "老贵", "小李", "潇潇"];
 arr.splice(1,1,"李海") //从1下标开始插入,并删除1下标元素,替换成新元素李海
 console.log(arr);//返回  ["李龙", "李海", "老贵", "小李", "潇潇"]

15.tostring()方法

tostring()方法是把数组转字符串的方法,注意数组中的元素用逗号隔开。 代码如下:

var arr = ["李龙", "老万", "老贵", "小李", "潇潇"];
var newarr=arr.toString() 
console.log(newarr);//返回  李龙,老万,老贵,小李,潇潇

16 es6中的克隆数组

es6中也有克隆数组的方法是使用rest参数的形式,示例代码如下:

es6
var array = [1, 2]
var array2 = [...array]
array2[0] = 2
console.log(array);//返回[1,2]
console.log(array2);//返回[2,2]

17 es6合并数组

es6中也有合并数组的方法是使用rest参数的形式,示例代码如下:

var arr = ["a", "b"]
var arr2 = ["c"]
var arr3 = ["d", "e"]
var array2 = [...arr, ...arr2, ...arr3]
console.log(array2)//返回 ["a", "b", "c", "d", "e"]

18 数组去重

有时候我们数组里面会出现重复的元素,这时候就需要数组去重,代码如下:

es6数组去重:

var array = []
for (var i = 0; i < 100000; i++) {
array.push(i)
}
array.splice(0, 0, 15);//插入几个重复的元素
array.splice(1, 0, 25);//插入几个重复的元素
array.splice(2, 0, 35);//插入几个重复的元素
new Set() //数组去重
var newarray = new Set(array);
console.log(newarray)

原始js数组去重:

//原生js数组去重
console.time("add Date")  //计算时间
var obj = {}  //对象
var newarray = []  //新数组
var len = array.length //变量接收原数组长度
for (var i = 0; i < len; i++) { //循环
var num = array[i] //变量接收每一个不同的值
if (obj[num]) {  //判断对象的属性有没有相同的属性
continue; //有就跳过本次循环进入下次循环
}
obj[num] = num  //没有就把值赋值给对象
newarray.push(num) //添加到新数组中
}
console.timeEnd("add Date")

19.filter()数组过滤

数组过滤是根据条件过滤掉我们不需要的元素,示例代码如下:

 var arr = [1,2,6,3,4,5];

  var res = arr.filter(function(item,index,array){ //参数1元素  参数2 元素下标 参数3数组对象本身

      //元素值,元素的索引,原数组。

      return (item>3); //过滤掉小于3的元素

  });

  console.log(res);//[6, 4, 5]20.filter()

20.reduce()方法计算数组元素和

reduce()方法接收一个函数作为累加器,数组中的每一个值(从左至右)开始缩减,最终计算为一个值

示例代码:

var arr=[15,35,23,27,99]
       var nums=arr.reduce(function(num1,num2){ //参数1 num1 第一次执行是第一个元素和第二个元素之和 参数2 num2 一直都是后一个元素 以此类推
           return num1+num2
       })
console.log(nums) //打印元素之和 199


以上就是个人总结的数组常用的几个方法,以上纯属个人观点,如有错误欢迎指正。

还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :