1.数组中增删改的方法(会修改原数组)
unshift: 向数组首位增加内容,返回新增数组的长度
push: 向数组末尾增加内容,返回新增数组的长度
shift:删除数组中的第一项,返回删除的元素
pop: 删除最后一项,返回删除的元素
splice(n, m, z) 对数组进行增删改操作
n:操作部分被开始的下标(从哪一个开始)
m:删除几个(m不写会删除到最后)
z: 填充删除的部分
2.数组拼接的方法
concat() 实现数组拼接(可以拼接多个任意类型的值),返回一个拼接完的数组
3.数组变字符串的方法
toString() 将数组转换为字符串,每一项用,分割,返回转换后的字符串,原数组不变
join() 将数组转换为字符串,可以指定分隔符,返回转换后的字符串,原数组不变
4.数组检测
indexof/lastIndexOf: 检测数组中是否包含某一项/最后一项,返回值为这一项在数组中的索引,若没找到则返回-1,不改变原数组
includes() 检测数组是否包含某项,包含则返回true,不包含则返回false
4.数组排序
reverse() 将数组倒过来排序,返回排序后的数组,会改变原数组
sort() 实现数组排序,默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。,但如果不传递参数,则无法处理9以上的数字排序
满足所有数字的升序
array.sort((a, b) => {
retun a - b
)
满足所有数字的j降序
array.sort((a, b) => {
retun b - a
)
5.数组截取
slice: 提取数组的某个部分,并以新的数组返回被提取的部分。(如果没有任何参数,相当于克隆了数组,通常可以使用来将伪数组变成真正数组)
参数一为起始下标,参数二为截止下标(字符串同理使用)
参数一 可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
参数二 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 ( slice() 方法不会改变原始数组。)
6.遍历数组
forEach() 可以对数组进行遍历。
参数为一个函数,函数有三个参数,参数1为遍历的每项,参数2为遍历每项的索引,参数3为当前遍历的数组
every:用于检测数组所有元素是否都符合指定条件。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。
some() 方法用于检测数组中的元素是否满足指定条件。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。(filter会自动跳过为undefined的元素,不对他们执行回调函数操作)
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
以上map,filter,some,every,find,findIndex 方法参数都为一个函数,函数里面有三个参数,参数一为遍历的当前项,参数二为当前项的下标,参数三为当前项所属的数组。他们都不会对空数组进行检测,都不会改变原始数组
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduceRight() 方法的功能和 reduce功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
reduce和reduceRight有两个参数,第一个参数是一个函数,函数里有四个参数,参数一为初值值或计算结束返回值(必选),参数二为当前元素(必选),参数三为当前元素索引(可选),参数四为当前数组(可选);第二个参数为传递给函数的初始值。(可选)