栈方法
push()方法
push()方法可以接收任意数量的参数,并把它们逐个添加到数组的尾部,返回修改后数组的长度
pop()方法
pop()方法从数组的末尾移除最后一项,减少数组的length值,然后返回移除的项
队列方法
unshift()方法
unshift() 方法能在数组前添加任意项,然后返回数组的长度
shift()方法
shift()方法能移除数组中的第一项,并返回改项,同时数组的长度减去1
栈方法和队列方法对数组操作的返回值:1.为数组添加项的返回值都为数组的长度;2.移除数组项的方法的返回值都为所移除的项
重排序方法
reverse()方法
reverse()方法会数组项的顺序
sort()方法
1.当使用arr.sort()方法时,如果没有给sort()方法传递函数,则sort()方法会调用每个数组项的toString()转型方法,得到字符串,然后排序。
例如:var values = [0,1,5,10,15];
valuse.sort(); // 0,1,10,15,5
如上所示,sort()方法虽然会根据测试字符串改变原来的顺序,但在进行字符串比较时,‘10’则位于‘5’的前面,于是数组的顺序就被修改了,所以这种方法在大多数情况下并不是最佳方案。因此sort()方法可以接收一个比较函数作为参数。
2.arr.sort(function(a,b){
return a-b
})
这种方法适用于大多数方法,这种方法的原理其实就是冒泡排序。
操作方法
concat()方法
concat()方法可以基于当前数组的所有项创建一个新的数组,也就是说它会创建一个副本,然后将接收到的参数添加到这个副本的尾部,如果没有传参它只是复制当前数组并返回副本。
concat()方法和push()方法很像,都是往数组的末尾添加数组,不过他们也是有区别的,concat()的返回值是一个新的数组,它并没有改变原来的数组,push()的返回值是当前数组的长度,它已经改变了当前数组。
slice()方法
slice()方法可以接收一个或两个参数,即要返回项的起始位置和结束位置。在只有一个参数的情况下,会返回从该参数位置开始到当前数组的末尾项。 注意:slice()方法不会影响原始数组。
splice()方法
splice()方法三种使用方式:
1.删除:可以删除任意数量的项,至需要两个参数,要删除的第一项的位置和要删除的项数。
2.插入:可以向任意位置插入任意数量的项,只需要提供三个参数:起始位置、0(要删除的项数)、和要插入的项。如果要插入多个项,可以传入第四、第五,以至任意多个项。
3.替换:可以向指定位置插入任意数量的项,且同属删除任意数量的项。只需要将第二个参数修改为要删除的项的个数即可。
splice()方法始终都会返回一个数组,该数组包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。
位置方法
indexOf()方法
lastIndexOf()方法
这两个方法都接收两个参数:要查找的项和表示查找起点位置的索引(可选);indexOf()表示从头查找,lastIndexOf()表示从尾部查找。会返回要查找项的索引,如果没有找到则返回-1