栈方法
Array.push()
- ECMAScript提供了push(),pop()方法,来实现模拟了栈的推入弹出(后进先出)。
- push()方法接受任意数量的参数,并把它们逐个添加到数组末尾,并返回修改后的数组长度。
Array.pop()
- pop()方法则从数组末尾移除最后一项,然后返回移除的项。
- 这两个对栈的模拟方法均是在原数组上进行修改。
var colors = ["black", "white"];
colors.push("blue") //["black", "white", "blue"]
colos.pop() //["white", "blue"]
队列方法
Array.shift()
- shift()与pop()方法类似,不过是移除数组首项,并返回移除的项
Array.unshift()
- unshift()与push()类似,从数组首项添加元素,并返回修改后数组长度
var colors = ["black", "white"];
colors.shift("blue") //["white"]与push()方法可以像队列一样使用数组
colos.unshift("blue") //["blue","black", "white"]
重复排序方法
Array.reverse()
var numbers = [1, 2, 3, 4, 5];
numbers.reverse() //[5, 4, 3, 2, 1]
Array.sort()
- sort()方法按升序方法排列数组项。但是,为了实现排序,sort()方法会调用每个数组项的toString()方法,然后进行排序。下面代码的输出可以看见这个问题,这种排序方式在很多情况下并不是最佳方案,因此sort()方法可以接收一个比较函数作为参数.并返回修改后的数组,reverse()方法类似。
var numbers = [0, 1, 5, 10, 15]
numbers.sort() //[0, 1, 10, 15, 5]
function copmare(value1, value2)
{
if(value1 < value2)
{
return -1;
}else if (value1 > value2)
{
return 1;
}else
{
return 0;
}
}
numbers.sort(compare) //[0, 1, 5, 10, 15]
操作方法
Array.concat()
- concat()方法基于当前数组中的所有项创建一个新的数组。执行concat()方法时首先会创建一个当前数组的副本,然后将传递参数添加到数组末尾,并返回这个数组。
var numbers1 = [1, 2, 3, 4];
var numbers2 = numbers1.concat(4, [5, 6]) //[1, 2, 3, 4, 4, 5, 6]
Array.slice()
- slice()方法基于当前数组中的一项获多项创建一个新数组,slice()方法接受1或2个参数。一个参数时,返回该位置到数组末尾的所有项。两个参数时,返回start-end中间的所有项。注意slice()方法不会修改原数组
- 如果传入参数是负值,则用数组长度加上参数即为位置
var numbers = [1, 2, 3, 4, 5];
numbers.slice(1); //2, 3, 4, 5
numbers.slice(1, 3); //2, 3, 4
console.log(numbers) //1, 2, 3, 4, 5
Array.splice()
- 删除:splice(index, len)第一次项的位置和修改的项数
- 插入:splice(index, 0, string)插入的位置,插入的内容
- 替换:splice(index, len, string)替换的位置,长度和内容
- splice()方法在原数组上进行操作,并返回被替换的内容数组
var numbers = [1, 2, 3, 4, 5];
var numbers1 = numbers.splice(0, 1); //删除第一项 [1]
var numbers2 = numbers.splice(0, 0, 1); //从位置0插入一项,返回的是空数值
var numbers3 = numbers.splice(1, 1, 3); //从位置1开始修改1项, [2]
位置方法
Array.indexOf()
- 接受两个参数:要查找的项和(可选的)表示查找起点位置的索引。找到后返回index,为找到则返回-1。
var numbers = [1, 2, 3, 4, 5];
numbers.indexOf(1) //0
numbers.indexOf(0) //-1
Array.lastIndexOf()
迭代方法
- 每个迭代方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域(影响this的值)所有迭代方法均对数组的每一项运行指定函数
Array.every()
Array.filter()
Array.forEach()
Array.map()
Array.some()
归并方法
Array.reduce()
Array.reduceRight()