栈方法
push方法和pop方法, 可以使数组的行为类似于栈, 先进后出, 并且推入和弹出操作只发生在一端.
push方法
push方法可以接收一个或多个参数, 把它们追加到数组末尾, 并返回修改后数组的长度.
var arr = ['a', 'b', 'c', 'd', 'e'];var temp = arr.push('f');console.info('temp: ' + temp); // temp: 6console.info(arr); // ["a", "b", "c", "d", "e", "f"]temp = arr.push('g', 'h');console.info('temp: ' + temp); // temp: 8console.info(arr); // ["a", "b", "c", "d", "e", "f", "g", "h"]
合并两个数组
我们可以通过Array.prototype.push.apply()来合并两个数组, 示例如下:
var arr1 = ['a', 'b', 'c'], arr2 = ['x', 'y', 'z'];var temp = Array.prototype.push.apply(arr1, arr2);console.info(arr1); // ["a", "b", "c", "x", "y", "z"]console.info(arr2); // ["x", "y", "z"]console.info(temp); // 6
pop方法
pop方法是将数组的最后一项移除, 将数组长度减1, 并返回移除的项.
var arr = ['a', 'b', 'c', 'd', 'e'];var temp = arr.pop();console.info('temp: ' + temp); // temp: econsole.info('length: ' + arr.length); // length: 4
如果在一个空数组上使用pop方法, 则返回undefined
队列方法
队列的访问规则是先进先出, 并且队尾添加项, 队头移除项. push方法和shift方法结合使用, 就可以像操作队列一样操作数组.
shift方法
shift方法将移除数组的第一项, 将数组长度减1, 并返回移除的项.
var arr = ['a', 'b', 'c', 'd', 'e'];var temp = arr.shift();console.info('temp: ' + temp); // temp: aconsole.info('length: ' + arr.length); // length: 4
unshift方法
相反地, 还有一个unshift方法, 它的用途与shift方法相反
unshift也可以在接收一个或多个参数, 把它们依次添加到数组的前端, 并返回修改后数组的长度.
var arr = ['a', 'b', 'c', 'd', 'e'];var temp = arr.unshift('x', 'y', 'z');console.info('temp: ' + temp); // temp: 8console.info(arr); // ["x", "y", "z", "a", "b", "c", "d", "e"]
重排序方法
sort方法和reverse方法
sort方法和reverse方法是可以直接用来重排序的两个方法.
其中, reverse方法是用来反转数组的.
var arr = [1, 3, 2, 5, 4];arr.reverse();console.info(arr); // [4, 5, 2, 3, 1]
关于sort方法, 默认情况下, 它是对数组的每一项进行升序排列, 即最小的值在前面. 但sort方法会调用toString方法将每一项转成字符串进行比较(字符串通过Unicode位点进行排序), 那么这种比较方案在多数情况下并不是最佳方案. 例如:
var arr = [1, 3, 2, 5, 4];arr.sort();console.info(arr); // [1, 2, 3, 4, 5]arr = [1, 5, 10, 20, 25, 30];arr.sort();console.info(arr); // [1, 10, 20, 25, 30, 5]
新闻热点
疑难解答
图片精选