前言
数组的应用常见比较多,涉及的方法与字符串的大都类似,很容易记混了。所以将数组的方法按照功能分类做一个比较系统性的整理。 如果觉得本文对您的理解及记忆有些许帮助,还请您点赞/关注,支持一下。 第一次发文,有写错的地方,欢迎大佬指正。
数组的操作方式
1). 创建数组
> const arr * new Array(0,1,2) const arr * [0,1,2];
2. 数组的转换
> tostring 将数组扁平化展开为字符串,每个数组元素使用,分割 arr.tostring(); "1,2,3";
> join() 只接收一个参数,将接收的参数拼接到数组的每一项形成新的字符串,不传时默认和tostring()一样 ['12', 1, 3].join('*'); *> '12*1*3'
3. 栈方法 一种后进先出的数据结构,与之对应的操作方法是 push() 和 pop()
> push() 从数组末尾添加,并返回数组长度
> pop() 从数组末尾删除,并返回删除项
4. 队列方法 shift()方法是将数组的第一项删除并返回删除项 unshift()方法 接收多个参数,将参数依次添加之数据头部,并返回数组长度
> shift() [1,2,3].shift() *> [2,3] 返回 [1,2,3][0]
> unshift() [1,2,3].unshift(5,9) *> [5,9,1,2,3] 返回 [5,9,1,2,3].length
5. 重排序方法 reverse() 方法使数组中的值反转,并返回重排的数组
> [1,2,3].recerse() *> [3,2,1]
6. 操作方法
> concat() 将方法接收的每一项添加至数组的末尾,并返回新的数组,不传则为复制数组
> slice() 支持接受一个数组的下标为参数,会从该参数的前一位开始删除,并返回新的数组
> splice() 支持传入三个参数,传入两个参数是为删除,三个参数或更多参数则为先删除在从该位置插入, splice始终会返回一个数组,这个数组为所有删除项目,只传入一个0时复制数组
7. 位置方法
> 分别包含两个方法 indexOf 和 astIndexOf 用户检索数据在数组中的位置,检索不到是返回-1
>> indexOf 返回检索字符在数组首次出现的位置的下标 const arr * [1,2,3,1,3,2]; arr.indexOf(1) *> 0
>> astIndexOf 从数组的末尾开始检索,效果同 indexOf
8. 迭代方法 所有方法都可以用于遍历 有三个参数 分别为 item (数组的每一项)、 index (当前项的下标) 、 array (被执行的数组) 。
> forEach() 此方法会重写引用类型的值,原始类型不受影响,没有返回值
> map() 不改变原数组,生成一个新数组,并返回。
> every() 通过你的特定函数会返回一个Boolean值,如果每项都true,则为true,反之为false
> some() 通过你的特定函数会返回一个Boolean值,如果某一项为true,则为true,反之为false
> filter() 筛选出符合你特定函数的值组成新的数组并返回
9. 归并方法 分别为reduce()和reduceRight()。
> 该两个方法接收四个个参数,分别为给定函数和pre初始值(可选)。均迭代数组的每一项传入给定函数,并构造一个最终返回值。
> reduce((pre,cur,index,array)=> { return pre + cur }) => 6 默认的除第一次执行,pre使用数组的第一个值为初始值、cur使用第二个值为初始值,pre后面会使用每次函数执行的结果、cur使用数组向后推移的值。
> reduceRight((pre,cur,index,array)=> { return ... }) 效果同上,不过它会从数组的末尾开始执行。