面试过程中我们经常会被问到js的一些处理函数,今天我们就来做一个总结。
会改变原数组的方法
- push() 往数组末尾添加数据,返回这个数组的长度
- pop() 删除数组的末尾值,返回删除的那个数据
- unshift() 在数组头部添加数据,返回数组的长度
- shift() 在数组头部删除一个数据,返回删除的数据
- reverse() 翻转数组,返回翻转后的数组
- sort() 数组排序,arr.sort()按照位排序,arr.sort(function(a,b){return a-b}):正序排序,arr.sort(function(a,b){return b-a}):倒序排序
- splice() arr.splice(开始索引,个数):截取,返回截取出来的数据,arr.splice(开始索引,个数,插入的数据):删除并插入数据,返回插入后的数组
不会改变原数组的方法
- concat() 合并数组,返回新的数组
- join() 数组转字符串,返回字符串
- slice() 截取数组的一部分数据,返回截取的数据,arr.slice(开始索引,结束索引),包含开始不包含结束
- indexOf() 从左边开始,检查数组是否包含某个值,有就返回该数据第一次出现的索引,没有则返回-1,用法:arr.indexOf(要查的数据) 或 arr.indexOf(要查的数据,开始索引)
- lastIndexOf() 从右边开始,检查数组是否包含某个值
ES6新增的一些方法
- forEach() 循环遍历
- map() 映射数组
- filter() 过滤数组
- every() 判断数组是不是满足所有条件
- some() 判断数组中是不是有满足条件的
- find() 获取数组中满足条件的第一个数据
- reduce() 叠加后的效果
- includes() 是否包含某个值
- findIndex() 查找符合条件元素的下标
以上9个方法,只有forEach()会改变原数组,其他均不会改变原数组。