![7dc125b464ba8df8e82f50c15b436e57.png](https://i-blog.csdnimg.cn/blog_migrate/a0ff602f3fef4fbe75c0ba14e301cabf.jpeg)
Js中常用的数组方法
在前端工作中,我们与数据打交道最多,需要面对各种各样的数据类型,有对象类型的、数组类型的、字符串类型的、布尔类型的等等,但其中我们最经常要处理等等应该要数数组类型的数据了,这个应该没跑了。
所以,今天我将会介绍对于处理数组类型的数据,用到的一些方法,我将他们主要分为两个大类,第一类改变原数组中的值,另一类不会改变原数组中的值,下面我将会按照这两大类进行介绍。
第一不会改变原数组中的值方法,包括map、filter、every、some、reduce等方法
首先map方法,参数为函数,是将数组中的元素每一个都执行一遍提供的函数,返回的结果组成一个新的数组,不会改变原数组中的值
![edf5f4f30b7003ed0119fe2e3a89df39.png](https://i-blog.csdnimg.cn/blog_migrate/a8c89461f32b1b8391e2c5d5a0a00978.png)
接着是filter方法,参数为函数,将数组中的每一个元素都进行判断,然后将满足条件的数组元素返回,作为一个新的数组返回
![f9384bdc2f709d74aaad2b79646ed44b.png](https://i-blog.csdnimg.cn/blog_migrate/68fbd3316049517860fafa9682bf0709.jpeg)
然后是every方法,参数为函数,将数组中的每一个元素都进行判断,如果数组中的每一个元素都满足条件,返回true,但凡有一个不满足条件,则返回false,可以总结为一假为假,全真则为真
![146ddba01d71da1cf45e19aabba0cbf9.png](https://i-blog.csdnimg.cn/blog_migrate/123b619054efd2b19c692055a92259ca.jpeg)
下面是介绍some方法,参数也是为函数,将数组中的每一个元素都进行判断,如果数组中的元素,但凡只要有一个满足条件,就返回true,如果每一个元素都不满足条件,则返回false,
可以总结为全假则假,一真则真
![f4d697559284b6f1396204fea95e6e31.png](https://i-blog.csdnimg.cn/blog_migrate/bcb3831c8f6da78bc2982dbd34b523ce.jpeg)
最后一个是reduce方法,传的参数也是属于函数,但是此时这个函数中可以穿四个形参,依次代表着不同的含义,第一个参数pre:代表运算结果返回的值,第二个参数item:代表着当前所操作的数组中的元素,第三个参数index:代表着当前操作元素的数组下标值(从1开始),第四个参数arr:代表着当前操作的数组
![1b8089c590f855c53879e803e7a24d97.png](https://i-blog.csdnimg.cn/blog_migrate/89414c41d3e46c7801e353d89271b2a9.jpeg)
Slice:(截取的开始位置,截取的结束位置),返回的是截取出来的子数组元素
![473d91dd31e2aae5f94e54361eb7573e.png](https://i-blog.csdnimg.cn/blog_migrate/f7f63338bcdf423d0a60016a8faf998b.png)
第二大类是改变数组中的元素的方法,包括forEach、push、pop、shift、unshift、toString、join、concat、isArray
首先来说是forEach方法,就是对数组中的各个元素进行遍历,可以进行查看、修改数组中的元素
![770ccc25792fd2e44d03a5058b31396d.png](https://i-blog.csdnimg.cn/blog_migrate/e592fb7726df4380cc468bd2793aa15f.jpeg)
Push方法:在原数组的后面添加一个新的元素,而数组的length属性值也会自动增长一
![f61db52edda8f0632e52e12d3fbef1f8.png](https://i-blog.csdnimg.cn/blog_migrate/988a104ba1258f75f17b3d40ac13c4f8.jpeg)
Pop方法:将原数组的最后一位给删除掉,而数组的length属性值也会自动减少一
![ca10131831ef8484c76cef704e12cf81.png](https://i-blog.csdnimg.cn/blog_migrate/7998f21813f28e3d124ce7d30d683ab6.png)
Shift方法是删除数组中的第一位元素,而unshift方法是向数组中的最前面添加新的元素
![46c93939eefef858c18c3e4ef8c8b19d.png](https://i-blog.csdnimg.cn/blog_migrate/7933e27b05d4654812872b8a603df53a.png)
![c575e8d00152f1a2773ab1eba483738d.png](https://i-blog.csdnimg.cn/blog_migrate/995b37b246074ec01a589bd93f778b5e.png)
toString方法是将数组中的元素转化为字符串形式,如果数组里面的子元素含有对象,则转化为字符串后为[Object,Object]
![0a472bbbc41218bff332b2a6c7dd2e53.png](https://i-blog.csdnimg.cn/blog_migrate/7a015514dea4c8076f5d7665c2a904e0.png)
Join方法是将以一个指定的符号连接成一个字符串
![5d761bb144cdd1da2c6f951042f8f545.png](https://i-blog.csdnimg.cn/blog_migrate/d117a3c611d67a2cda0eeff90cc0de4b.png)
Concat方法是将两个指定的数组拼接在一起,变成一个新的数组
![b0276cc79c847997667e67529472033d.png](https://i-blog.csdnimg.cn/blog_migrate/f68eba0eeef9f63d6e860e43f3157742.png)
isArray方法是来判断该数据是否为数组,返回的是布尔值
![94f270ba0f0bfadce05d17df33124280.png](https://i-blog.csdnimg.cn/blog_migrate/8acfe6d9a8e22cb51308033652a5a55a.png)
当然除了以上的方法之外还有一个最大的boss,数组中的万能方法可以实现对于数组的增删改查splice方法,可以穿三个参数,分别是截取开始的位置,截取的个数,添加新的子元素
![f1eef0afefaaf9187ca3cd8e046442c9.png](https://i-blog.csdnimg.cn/blog_migrate/32a1d3fc5dff274e3023873fa241c03e.png)