就是在我们的 js 中给我们提供了一下用来操作数组的方法
=> 就是更好的操作数组
=> 通用语法: 数组.方法名()
以下都会改变原数组
push()
-> 语法: 数组.push(数据)
-> 作用: 就是向数组的末尾(尾部)追加一个数据或多个
-> 返回值: 就是这个数组的长度
pop()
-> 语法: 数组.pop()
-> 作用: 就是用来从末尾删除一个数据
-> 返回值: 被删除的那个数据
unshift()
-> 语法: 数组.unshift(数据)
-> 作用: 就是从数组的头部添加一个数据或多个
-> 返回值: 就是这个数组的长度
shift()
-> 语法: 数组.shift()
-> 作用: 就是从头部删除一个数据
-> 返回值: 就是被删除的那个数据
reverse()
-> 语法: 数组.reverse()
-> 作用: 就是用来翻转数组的
-> 返回值: 就是翻转后的数组
->改变原数组
sort()
-> 语法一: 数组.sort()
-> 语法二: 数组.sort(function(a,b) {return a - b}) 升序从小到大
-> 语法三: 数组.sort(function(a,b) {return b - a}) 降序从大到小
-> 作用: 就是用来进行排序的
-> 返回值: 就是一个排序好的数组
splice()
-> 语法一: 数组.splice(开始索引, 多少个)
-> 语法二: 数组.splice(开始索引, 多少个, 你要插入的数据1,你要插入的数据2,..., )
-> 作用: 就是用来删除插入数据的
-> 返回值:
+ 就是删除的数据组成的一个数组
+ 返回的就是一个数组
fill(元素,start,end)
将元素填充到数组中,指定start位置开始到end结束。
改变原素组,
并且返回新的原数组
如果放入的元素是引用类型,这些放入的引用地址完全相同
copyWithIn(targer,start,end)
target 要复制到位置
start 从什么位置开始复制
end 到什么位置结束复制
在原数组中指定位置开始到指定位置结束的数据,复制到原数组指定的位置,会覆盖指定位置原有的元素。
改变原数组,
返回复制完成后的原数组
不改变原数组长度
不会改变原数组
concat()
-> 语法: 数组.concat(数据)
-> 作用: 用来合并数组的
-> 返回值: 就是一个新数组
join()
-> 语法: 数组.join(要区分每一项的符号默认逗号)
-> 作用: 就是把数组转换成字符串
-> 返回值: 就是转换好的字符串
slice()
-> 语法: 数组.slice(开始索引, 结束索引)
-> 作用: 用来截取数组的
-> 返回值: 就是截取出来的数组
-> 特点: 包含开始索引 不包含结束索引 包前不包后可以负数,第二个参数不写默认截取到最后
indexof()
-> 语法一: 数组.indexOf(数据)
-> 语法二: 数组.indexOf(数据,开始索引)
-> 作用:
+ 用来检测这个数据是否在这个数组中
+ 或者说这个数组是否包含这个数据
-> 返回值:
+ 如果有: 返回的是第一次出现的这个数据对应的索引
+ 如果没有: 返回的是 -1
lastIndexof()
-> 语法一: 数组.lastIndexOf(数据)
-> 语法二: 数组.lastIndexOf(数据,开始索引)
-> 作用:
+ 用来检测这个数据是否在这个数组中
+ 或者说这个数组是否包含这个数据
-> 返回值:
+ 如果有: 返回的是第一次出现的这个数据对应的索引
+ 如果没有: 返回的是 -1
includes()
-> 语法: 数组.includes(数据)
-> 作用: 就是用来检测这个数组中是否包含这个数据的
-> 返回值: 布尔值
+ true: 说明这个数组中包含该数据
+ false: 说明这个数组中不包含该数据
如果判断数组中是否包含引用数据类型的数据,因为引用地址的不同,判断为false
flat()
flat(n)扁平化映射 n表示要扁平化的层级
不改变原数组,
返回一个新数组。
Infinity正无穷大,传递这个参数表示全部扁平化
flatMap(function(){})
扁平化映射,只能做二维数组的扁平化。不改变原数组
并且在每个元素遍历时做对应的操作
Array.from(迭代器)
将迭代器转换为数组 返回一个新数组,比如argument列表就是迭代器,Set、Map集合也是
不能将对象转换为数组,因为对象不是迭代器,但是可以将含有length属性的对象转换为数组
Array.isArray(数组)
判断内容是不是数组,返回布尔值
Array.of(多个元素)变为数组 返回一个新数组
at
ES6新增,获取对应下标的元素,
索引值可以是负数,负数表示从后向前数
不改变原数组,返回对应的元素
.如果是字符串获取第一个元素
toReversed 反转数组
返回新数组
原数组不改变
with(要替换元素的下标,要替换成为的元素)
返回新数组
原数组不改变
只能替换一个元素
以下的方法都和循环遍历相关,不会遍历空元素
forEach()
-> 语法: 数组.forEach(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来循环遍历数组的,
item如果是基本数据类型直接操作item不会改变原数组,操作arr[index]才会改变原数组
如果是数组里边是引用数据类型object,通过操作item修改引用地址下的属性,可以改变原数组中的对象属性值
-> 返回值: 没有返回值 如果一定要有说有返回值就是: undefined
-> 注意: 函数中的参数不需要每次都书写出来 你需要那个就书写那个
map()
-> 语法: 数组.map(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来映射数组的,把每一项都计算了,如果是判断就是返回每一项Boolean
-> 返回值: 必然是一个数组
-> 注意: 要以return的形式书写返回条件
当数组中元素不是引用类型(数值、布尔值、字符串、symbol、undefined、null、NaN)无法通过item直接修改值
如果要修改原数组中的值,需要通过arr[index]可以修改
但是当数组中元素是引用类型,我们可以通过item修改这个引用地址下的属性
some()
-> 语法: 数组.some(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 用来检测数组中是否有满足条件的
-> 返回值: 是一个布尔值
+ true: 只要数组中有一个满足的返回的就是true
+ false: 只有所有的都不满足的时候返回的是false
-> 注意: 要以return的形式书写返回条件
every()
-> 语法: 数组.every(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 用来检测数组中是否有满足条件的
-> 返回值: 布尔值
+ true: 数组中所有的数据都满足条件返回的是true
+ false: 只要有任意一个不满足条件返回的就是false
-> 注意: 要以return的形式书写返回条件
filter()
-> 语法: 数组.filter(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来过滤(筛选)数组中满足条的数据,true才会返回数组满足条件的值,不能改变值
-> 返回值:
+ 满足条件的数据组成的新数组
+ 如果一个都没有满足的返回的是一个空数组
-> 注意: 要以return的形式书写返回条件
find()
-> 语法: 数组.find(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来查找满足条件的数据
-> 返回值:
+ 如果有就是满足条件的第一个数据
+ 如果没有返回的是就是undefined
-> 注意: 要以return的形式书写返回条件
findIndex()
-> 语法: 素组.findIndex(function (item, index, arr) {})
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来查找满足条件的第一个数据的索引
-> 返回值:
+ 如果有返回的就是对应的索引
+ 如果没有返回的就是 -1
-> 注意: 要以return的形式书写返回条件
reduce()
-> 语法: 数组.reduce(function (value, item, index, arr) {},初始值)
+ valuevalue: 一开始就是初始值
+ item : 代表的就是数组中的每一项
+ index: 代表的是每一项对应的索引
+ arr: 代表的是原数组
-> 作用: 就是用来进行归并的操作
-> 返回值: 就是归并后的结果
-> 注意: 要以return的形式书写返回条件
没有初始值的情况 value第一次进入是数组的第0项,item是数组的第1项
返回值将作为第二次归并的value