JS的数组总结
JS数组
JS数组是JS内置的一个对象,它的创建方式有两种,一种是用new的方式创建,一种是用Array构造函数创建,另一种是用数组字面量[]创建,在开发中通常都会使用数组字面量的方式创建对象,如下:
1 | //使用new的方式创建数组 |
数组常用的方法
在开发的过程中使用数组提供的方法场景比较多,如需要对数组元素进行增加、删除、替换等操作。以下是一些常用的方法:
unshift(),shift()
unshift(): 在数组头部添加元素,返回的是数组的长度。
Shift(): 在数组头部删除元素,返回的是被删除的那一个元素。
1 | //unshift()方法的参数可以有一个或者多个,会依次添加到数组头部 |
push(),pop()
push(): 在数组尾部添加元素,返回的是数组的长度。
pop(): 在数组尾部删除元素,返回的是被删除的那一个元素。
1 | //push()方法的参数可以有一个或者多个,会依次添加到数组尾部 |
concat(),slice(),splice()
concat(): 用于合并一个或者多个数组,返回一个新数组,不会改变原数组。
slice(): 返回由方法两个参数之间的包括第一个参数,不包括第二个参数的新数组,不会改变原数组。
splice():用于删除、替换、增加数组项,会改变原数组。
1 | //concat()方法接收一个或者多个数组类型的参数 |
sort(),reverse()
sort(): 对数组的元素进行排序,并返回当前数组排序后的结果,默认排序是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序,所以一般用数组排序可以传入一个比较函数。
reverse(): 对数组元素进行翻转,返回当前数组翻转后的结果。
1 | let array = [25,34,32,53,54] |
forEach(),every(),some()…
forEach(): 对数组的每个元素执行一次给定的函数,方法没有返回值。
every() 这个方法对于需要验证数组中每个元素是否都符合某种标准的情况特别有用,是否每个学生成绩都及格了,是否每个SKU都有库存,是否每个员工年龄都超过了18岁等,符合条件就返回true!
some() 只要一个数组项满足要求就返回true,这个班有学生考上了清华,虽然只有一个学生考上了。
filter():对数组元素进行筛选,满足条件就会添加到新数组中,不满足条件就会被过滤掉。
map(): 返回新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
1 | let friends = ['hailee','david','chris'] |
reduce()
reduce(): 方法对数组中的每个元素按序执行一个提供的reducer 函数,每一次运行reducer会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
1 | let array = [1,2,3,4,5] |
数组去重
- 使用indexOf()跟filter()方法
1 | // 数组去重 |
- Array.from()跟Set数据结构
1 | let array = [1,2,3,4,5,6,5,4,3,2,1] |
- Set数据结构跟解构赋值
1 | let me = ['hailee','hailee','25','26','starbucks','cups'] |
总结
数组常用的方法有很多,这是我常用的一些数组的方法,在对数组进行操作的时候可以根据数据类型选择适合的方法以及操作,涉及到数组去重的方法还有好几个,下次再更新!