数组的常用方法

就是在我们的 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值