一、slice和splice
slice(start, end),该方法从原数组选取指定的元素,从start到end结束,返回一个新的数组
splice(start, ?deleteCounts, ...items),该方法从原数组中删除元素,或向原数组中插入元素,返回被删除的项目(常用方法)
let arr = [1,4,6,4,2,5]
arr.splice(1, 2, 3, 4) // 从下标为1的位置开始删除2个元素,并且插入元素3和元素4
返回被删除的项目 (2) [4, 6]
arr // (6) [1, 3, 4, 4, 2, 5]
二、join和split
arr.join('-') // "1-3-4-4-2-5"
"1-3-4-4-2-5".split('-') // (6) ["1", "3", "4", "4", "2", "5"]
三、push(常用)和pop,shift和unshift(这2组方法一一对应)
push(...items),添加任意数量的参数到末尾,返回数组修改后的长度
pop(),移除最后一项并返回移除项
shift(),移除第一项并返回移除项
unshift(...items),从数组开头添加任意数量的参数,返回修改后的数组长度
四、sort排序,可接收一个自定义比较函数作为参数
五、reverse反转,concat:该方法先创建一个原数组的副本,然后将参数添加到副本中,返回新数组,不改变原数组
六、indexOf和lastIndexOf,返回需要查找的项在数组中的位置,不存在则返回-1
PS:数组去重的时候,可以创建一个空数组,然后遍历原数组,判断每一项是否在新数组中存在,不存在则push到新数组中。另外可以转为Set结构(ES6新增的数据集合,成为都是唯一的值)自动去重
/<-----ES6新增方法------>/
七、find()和findeIndex()
find(),接收一个回调函数作为参数,依次执行该回调知道找出第一个返回值为true的成员,并返回该成员
findIndex(),与find类似,返回第一个满足条件的成员的位置
八、includes(),是否包含给定的值,返回布尔值
数组遍历:
九、forEach和map,相同点:接收一个回调函数,数组成员依次执行。不同点:forEach没有返回值,操作数组本身,可以改变原数组;map返回一个新数组,不改变原数组
十、filter,every,some。filter返回满足条件的新数组,every当每一项都满足时返回true,some当有一项满足条件时返回true
/<-----ES6新增方法------>/
十一、for of,必须要部署了Symbol.iterator的数据结构,才能使用for of遍历,包括:数组、Set和Map对象、类数组的对象(如arguments对象、DOM NodeList对象)、Generator对象以及字符串。
当然少不了我们最常见的for循环,在数据量达到一定量级的时候,for循环速度更快,具有性能上的优势