js数组的常用方法
增删改查
- push 在数组的末尾添加一个或多个元素,直接改变原数组,返回增加元素后数组的长度
- pop 在数组的末尾删除最后一个元素,直接改变原数组,返回删除的那个元素
- unshift 在数组的最前面添加一个或多个元素,直接改变原数组,返回增加元素后数组的长度
- shift 在数组的最前面删除一个元素,直接改变原数组,返回删除的那个元素
- splice 可以实现对数组的增删改,取决于参数的个数
给两个参数,i, n 从下标为i的位置开始,删除n个元素;
给三个参数,i, n, item:
当n为0时,添加操作,在下标为i的元素后添加item,后面的元素后移
当n不为0时,修改操作,找到下标为i的元素,将其替换为item - indexOf 查找数组中符合条件的第一个元素的下标,若找到了则返回这个下标,若找不到返回-1
- lastIndexOf 查找数组中符合条件的最后一个元素的下标,若找到了则返回这个下标,若找不到返回-1
- findIndex 查找数组中符合条件的第一个元素的下标,若找到了返回这个下标,找不到则返回-1
indexOf和findIndex的区别:
indexOf适合于简单类型的数组(字符串、整形等);
findIndex适合于复杂类型的数组(对象数组),参数是一个函数,按照指定的条件进行查找
遍历筛选
- forEach 循环遍历,回调函数的参数与map相同,没有返回值,原数组不变
- map 映射,回调函数的参数有三个,第一个是当前正在遍历的元素的索引,第二个是当前遍历元素本身,第三个是原数组本身,返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组,原数组不变
- filter 筛选出符合条件的所有元素组成一个新的数组并返回,若找不到符合条件的元素则返回空数组,不会改变原数组
- find 筛选出符合条件的第一个元素并返回,若找不到则返回undefined,不改变原数组
数组和字符串的转换
- join 将数组中的元素通过指定的分隔符以字符串的形式连接起来,返回一个新的字符串,原数组不变
- toString 将数组转化为字符串,返回新的字符串
数组翻转
- reverse 实现数组的逆序,会改变原数组,返回逆序后的数组
数组排序
- sort 对数组进行排序,会改变原数组,如果不给参数会按照首字符的升序进行排序,参数可以给一个函数,通过函数的条件进行排序
数组拼接与截取
- concat 拼接数组,将两个数组中的元素拼接成一个新的数组,不会改变原数组,返回拼接后的新数组,与push的区别是,push是将后一个元素原封不动的添加到第一个数组的后面。
- slice 截取数组,将截取的数组放在一个新的数组中,不改变原数组,找不到返回空数组。
截取的长度视参数个数而定:
两个参数:从第一个参数的下标开始,截取到第二个参数为止,不包括第二个参数所在位置的元素;
一个参数:从参数下标所在的位置开始,一直截取到数组的最后一个元素;
没有参数:截取整个数组,可以用来拷贝数组。
数组判断
- some 判断数组是否含有符合条件的元素,如果有,返回true,剩下的元素不再进行判断,没有则返回false,不会对空数组进行检测,适用于对象数组。
- every 判断数组中的所有元素是否都符合条件,都符合返回true,否则返回false。
- includes 判断数组中是否包含一个指定的值,有就返回true,没有返回false,适用于简单类型的数组。