1.push
语法:数组.push(数据)
作用:向数组末尾添加数据
返回值:追加数据后,数组最新的长度(length)
2.pop
语法:数组.pop()
作用:删除数组最后一条数据
返回值:被删除的数据
3. unshift
语法:数组.unshift(数据)
作用:向数组开头添加数据
返回值:添加数据后数组最新的长度(length)
4.shift
语法:数组.shift()
作用:删除数组第一条数据
返回值:被删除的数据
5.reverse
语法:数组.reverse()
作用:反转数组
返回值:反转后的数组
6.sort
语法1:数组.sort()
作用:会将数据转化为字符串后,一位一位的对比
语法2:数组.sort(function(a, b) {return a - b})
作用:会按照数字大小升序排序
语法3:数组.sort(function(a, b) {return b - a})
作用:会按照数字大小降序排序
返回值:排序后的数
7.splice
语法1:数组.splice(开始索引,多少个)
作用:截取数组部分内容
语法2:数组.splice(开始索引,多少个,插入的数据1,插入的数据2,插入的数据3……)
作用:截取数组部分内容,并插入新的数据
返回值:截取出来的部分内容组成的数组
数组的方法能够改变原数组的就只有上边说的7个
8.slice
语法:数组.slice(开始索引,结束索引)
参数:
包前不包后,包含开始索引位置的数据,不包含结束索引位置的数据
不写开始索引,默认是0;不写结束索引,默认是数组.length
参数支持写负数,表示倒数第几个,其实就是 length + 负数
作用:截取数组部分内容
返回值:截取出来的部分内容组成的新数组
面试题:splice与slice的区别
数组中有两个方法,splice与slice,你能描述一下它们两个的区别吗?
1.参数含义不同,介绍一下参数哪里不同
2.splice会改变原数组,slice不会
9.concat
语法:原始数组.concat(数组1,数组2,……,数据1,数据2,……)
作用:进行数据拼接,把数组……数据之类的小括号里的内容,拼接在原始数组中
返回值:拼接好的数组
10.join
语法:数组.join('连接符')
作用:使用“连接符”把数组内的每一个数据连接成一个字符串(不写连接符,默认使用的是逗号)
返回值:连接好的字符串
11.indexOf
语法1:数组.indexOf(要检查的数据)
作用:从前到后(从左到右)检查该数据第一次在该数组内出现的索引
语法2:数组.indexOf(要检查的数据,开始索引)
作用:在开始索引的位置,按照从左到右的顺序,检查该数据第一次在该数组内出现的索引
返回值:
找到数据的情况下,会将该数据第一次出现的下标(索引)返回
没找到的情况下,会直接返回一个 -1
备注:开始索引不写的时候,默认是0
12.lastIndexOf
语法1:数组.lastIndexOf(要检查的数据)
作用:从后向前(从右向左)检查该数据第一次在该数组内出现的索引
语法2:数组.lastIndexOf(要检查的数据,开始索引)
作用:在开始索引的位置,按照从右到左的顺序,检查该数据第一次在该数组内出现的索引
返回值:找到数据的情况下,会将该数据第一次出现的下标(索引)返回
没找到的情况下,会直接返回一个 -1
备注:开始索引不写的时候,默认是0
13.forEach
语法:数组.forEach(function (item,index,origin) {})
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:遍历数组
返回值:该方法永远没有返回值(undefined)
14.map
语法:数组.map(function(item,index,origin){}) 三个参数的意义和forEach相同
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:映射数组
返回值:返回一个和原数组长度相同的数组,但是内部数据可以经过我们的映射加工
映射加工:就是在函数内以return的形式书写
面试题: forEach和map的区别
数组常用的遍历方法中,有一个forEach和一个map,这两个方法有什么区别?
1. forEach 的作用是用来遍历数组,而 map 的作用是用来映射数组
2. forEach 没有返回值,而 map 是可以有返回值的
15.filter
语法:数组.filter(function(item,index,origin){}) 三个参数的意义与forEach相同
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:过滤数组
返回值:返回一个新数组,内部存储的是原始数组过滤出来的部分内容
过滤条件:以return的形式书写
16.find
语法:数组.find(function(item,index,origin){})
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:在数组内查找满足条件的第一项
返回值:找到的数据;如果没有找到,返回的是undefined
查找条件:以return的形式书写
17.findIndex
语法:数组.findIndex(function(item,index,origin){})
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:在数组内查找满足条件的第一项的下标
返回值:找到的数据的下标;如果没有找到,返回的是 -1
查找条件:以return的形式书写
18.some
语法:数组.some(function(item,index,origin){})
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:判断数组内是否有一个满足条件
返回值:一个布尔值 true / false
判断条件:以return的条件书写
19.every
语法:数组.every(function(item,index,origin){})
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:判断数组内是否全部满足条件
返回值:一个布尔值 true / false
判断条件:以return的条件书写
20.reduce
语法:数组.reduce(function(prev,item,index,origin){},init)
prev:表示初始值或者上一次的运算结果
item:数组的每一项的值
index:数组的每一项对应的下标
origin:原始数组(了解即可,一般没人用)
作用:用来实现叠加效果
返回值:最终叠加的结果
注意:
-
叠加条件以return的形式书写
-
prev第一次的值,如果你传递了init,就是init的值;如果没有传递init,那么就是数组[0]的值
-
如果传递了init,循环执行数组.length次;如果没有传递init,循环执行数组.length-1次
-
init不写,item直接从下标1开始