栈方法:后进先出(Last-In-First-Out )
1.push(x) :数组尾部添加,返回数组长度
2.pop():数组尾部移出,返回移除的项
var arr = new Array();
console.log(arr.push('a', 'b'));//2
console.log(arr);//[a,b]
console.log(arr.pop());//b
console.log(arr);//[a]
队列方法:先进先出(First-In-First-Out)
1.shift():移除数组第一个元素,返回移除元素
2.unshift(x):添加元素到数组第一项,返回长度
//模拟队列
var arr = new Array();
arr.push(1,2,3);
arr.shift();//[2,3]
console.log(arr);
//相反方向模拟队列
var arr1 = new Array();
console.log(arr1.unshift(1, 2, 3));//3
arr1.unshift(4);
console.log(arr1);//[4,1,2,3]
arr1.pop();
console.log(arr1);[4,1,2]
重排序方法
1.reverse() 数组反转
var arr = [1,2,3];
arr.reverse();
console.log(arr);//[3,2,1]
2.sort():会把每个数组项用toString方法转成字符串,所以比较的是字符串。
- 该方法可接收一个比较函数作为参数。arr.sort(compare)
- 而比较函数可接收两个参数,若第一个参数要在第二个参数之前,应该返回负数。两个参数相等,返回0.第一个参数要在第二个参数之后,返回正数
console.log(arr1.sort());//[0,1,2,3,4]
var arr2 = [1,10,5,42];
console.log(arr2.sort());//[1,10,42,5]
var arr2 = [1,10,5,42];
//console.log(arr2.sort());//[1,10,42,5]
function compare(value1,value2) {
if(value1 < value2){
return -1;//第一个参数在第二个参数之前
}else if (value1 > value2){
return 1;
}else{
return 0;
}
}
arr2.sort(compare);
console.log(arr2);//[1,5,10,42]
操作方法
concat():两个或多个数组连接,不会改变原来的数组
var arr = [1,2,3];
var arr1 = [4,5,6];
//console.log(arr.concat());//[1,2,3]创建当前数组的副本
//console.log(arr.concat(arr1));//[1,2,3,4,5,6]//接收参数添加到复制的数组的末尾
//console.log(arr);//[1,2,3]
console.log(arr1);//[4,5,6]
splice():会改变原来数组
- 第一个参数:索引
- 第二个参数:删除元素的个数
- 第三个参数:替换或插入的内容
删除:splice(索引,删除个数)
var arr = [1,2,3];
arr.splice(0,1);
console.log(arr);//[2,3]会改变数组
arr.splice(0,1);
console.log(arr);//[3]
插入:splice(索引,0,插入元素)
var arr = [1,2,3];
arr.splice(2,0,'a','b');
console.log(arr);//[1,2,3,'a','b']
替换:先删除再插入splice(索引,删除个数,从该索引添加元素)
var arr = [1,2,3];
arr.splice(2,1,'a','b');
console.log(arr);//[1,2,'a','b']
slice():创建一个新的数组并返回。(不会改变原来的数组)接收一个或两个参数
- slice(begin):从该索引开始,从该位置到数组末尾的所有项
- slice(begin,end)从begin索引开始到end位置(不包含)的所有项。若第一个参数比第二个参数大,返回空数组
var arr = [1,2,3];
console.log(arr.slice(-1));//[1,2,3]
console.log(arr.slice(0));//[1,2,3]
console.log(arr.slice(1));//[2,3]
console.log(arr.slice(2));//[3]
console.log(arr.slice(1, 2));//[2]