js数组,有它就够了

151 阅读3分钟

前言

数组的应用常见比较多,涉及的方法与字符串的大都类似,很容易记混了。所以将数组的方法按照功能分类做一个比较系统性的整理。 如果觉得本文对您的理解及记忆有些许帮助,还请您点赞/关注,支持一下。 第一次发文,有写错的地方,欢迎大佬指正。


数组的操作方式

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 ... }) 效果同上,不过它会从数组的末尾开始执行。