今天来总结一下数组的一些方法 是分享也是个人的一个总结 如有不足或错误之处 欢迎大家补充和指导
还在更新中 大家要是觉得有用 可以点个关注或者收藏
增删:pop、shift、unshift 、push
截取:splice、slice
顺序:reverse、sort
联结:concat
变态:join、toString
查找:indexOf、lastIndexOf、includes、find、findIndex
循环:reduce、reduceRight、forEach、map、filter、every、some
其他:flat、fill
最新提案:toReversed、toSorted、toSpliced、with
一 、增删方法
pop方法
作用:该方法没有参数,每次只能删除数组的最后一位,并且返回被删除的数据,该方法会改变原数组
示例如下
shift方法
作用:该方法没有参数,会删除数组的第一位数据,并且返回被删除的数据,该方法会改变原数组
示例如下
unshift方法
作用:该方法会在数组的前面添加元素,可以添加多个用 ,隔开 会返回一个新的数组长度,该方法会改变原数组
示例如下
push方法
作用:该方法会在数组的后面添加元素 ,可以添加多个元素用 ,隔开 会返回一个新的数组长度,该方法会改变原数组
示例如下
二、截取方法
splice方法
作用:该方法可以删除数组内的元素 也可以替换和添加数组内的元素 有三个参数 第一个是索引 第二个是删除(如果设置为0 则不会删除) 第三个是向数组内添加的元素 会返回一个由被删除和被替换组成的新数组
语法:arr.splice(index, num, item1…itemX)
示例如下
索引到了2的位置 把3删除(当然这里不删除也有同样的替换效果,但是不会有返回值,只会返回一个空数组)替换成了6,7
)
slice方法
作用:截取指定下标数组的值 会返回一个由截取数据组成的新数组 有两个参数 起始索引值和结束索引值 不会改变原数组
语法: arr.slice(startindex,endindex )
示例如下
索引从2开始 到4结束 但是不会返回结束索引的值
三、顺序方法
reverse方法
作用:将数组反转(倒序) 并且返回反转(倒序)后的新数组 会改变原数组
示例如下
sort方法
作用:将数组内的元素进行排序 排序规则默认根据字符串Unicode码点
参数如下
arr.sort(function (a, b)
该参数用来制定数组的排列顺序 如果返回的值是b在a前面那么就是从大到小的顺序
如果返回的值是a在b前面 那么就是从小到大的顺序
示例如下
四、联结方法
concat方法
作用:数组的拼接 将多个数组内容放在一个数组里面形成一个新的数组 不改变原数组
如果是其他类型 直接放进新数组里面
如果该方法没有设置参数 就会返回原数组
示例如下
五、变态方法
join方法
作用:可以用特定的符号将数组里的内容拼接成字符串 如果不添加参数就直接将数组转换成字符串 不改变原数组
示例如下
toString方法
作用:将数组转换成字符串 不改变原数组 返回转换后的新数组
示例如下
六、查找方法
indexOf方法
作用:查询元素在数组中第一次出现的位置,
如果存在返回下标 不存在返回-1
示例如下
lastindexOf方法
作用 查询元素在数组中最后一次出现的位置 如果存在返回下标 不存在返回-1
示例如下
includes方法
作用:用于判断数组里是否存在这个值 如果存在返回true 不存在返回false
示例如下
find方法
作用:该方法会遍历数组的每一个元素 每个元素都会调用一次函数执行 当数组里的元素满足条件时就会返回第一个满足条件的值 如果没有满足条件的值就返回 undefined 不会改变原数组
示例如下
findIndex方法
作用:该方法会遍历数组的每一个元素 每个元素都会调用一次函数执行 当数组里的元素满足条件时就会返回第一个满足条件的索引 如果没有满足条件的值就会返回-1 不会改变原数组
示例如下
七、循环方法
reduce方法
作用:该方法接收一个函数作为累加器,数组的每个值从左到右开始缩减,最终计算为一个值
语法:array.reduce(function(total, currentValue, currentIndex, arr),initialValue)
参数如下
示例如下
reduceRight方法
作用:该方法和reduce类似 不同的是reduceRight是从右到左
语法:array.reduce(function(total, currentValue, currentIndex, arr),initialValue)
参数如下
示例如下
forEach方法
作用:该方法会调用数组中的每个元素,并将元素传递给回调元素,遍历整个数组 但是无法break中途跳出循环,不可控,不支持retrun操作
语法:array.forEach(function(currentValue, index, arr), thisValue)
参数如下
示例如下
map方法
作用:该方法会遍历数组 返回一个新数组 不会改变原始数组。 新数组中的元素为原始数组调用函数处理之后的值
语法:array.map(function(currentValue,index,arr), thisValue)
参数如下
示例如下
filter方法
作用:该方法会创建一个新数组,新数组的所有元素是通过检查指定元素符合条件的所有元素。
filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或 等
价于 true 的值 的元素创建一个新数组。那些没有通过 callback 测试的元素会被跳过,不会被
包含在新数组中。filter 不会改变原数组。
语法:array.filter(function(currentValue,index,arr), thisValue)
参数如下:
示例如下
every方法
作用:该方法用来判断数组中的每个元素是否都满足条件 只返回布尔值 都满足条件返回true 只要有一个不满足就返回false
示例如下
some方法
作用:判断数组中是否有一个元素满足条件 返回布尔值 只要有一个满足就返回true 都不满足返回false
示例如下
八、其他
flat方法
作用:该方法用于将一个多维数组变成一维数组 该方法返回一个新数组 对原数组没影响