同学们对于js数组常用的方法应该大都烂熟于心了,今天花点时间我们再来重温一下
首先是数组的能改变自身的7个方法:
- push 尾部增加
- pop 尾部删除
- shift 头部删除
- unshift 头部增加
- splice 删除某一个或者替换
- sort 排序
- revese 反转
这里用过vue的小伙伴应该非常熟悉,这是vue中经常提到的几个方法
es3 方法
- arr.indexOf 查找一个元素是否在数组中
- concat(...items) 合并返回一个新数组
- slice 截取部分返回一个新数组
- join 拼接返回一个字符串
es5 方法
- filter 过滤符合条件的项,组成一个新数组
- some 检查有一项为true,即为true
- every 检查每一项为true 才为true
- reduce
es6方法
- find 找出符合条件的第一项
- findIndex 找出符合条件的第一项index
- includes 数组中是否包含
- flat 拉平多维数组
- [...arr] 数组的扩展运算符 将数组浅copy一份
- Array.from 转数组
数组的迭代方法
- forEach
- map 返回一个新数组
- keys values entries
综合写下来,数组的常用方法的确也不算少了,有时候对于某个方法记忆模糊了,需要再查一下。但是我们需要清楚的知道某个方法能处理什么情况,知道在什么时候使用才是真正掌握了。
就比如数组常用的去重,现在我们经常用的是扩展运算符结合Set 数据结构:
[...new Set(arr)]
这就是利用数组扩展运算符的copy和Set元素的唯一性
我们开发的时候也经常遇到这个场景:从A数组中,找到不在B数组的元素
let c = []
A.forEach(item => {
if (A.includes(item) && !B.includes(item)) {
c.push(item)
}
})
这个问题也有许多的解法,但这个解法我认为还是比较符合正向思维的,比较容易记住
写在最后: 平时开发中数组方法的时候场景还有很多,遇到不太容易的需要我们多多总结归纳。只有思考归纳过后,才是我们真正掌握的。当然如果想针对训练,还是推荐数一下(数组知识点题库 - 力扣(LeetCode))等算法题,训练多了,你就会了~