传统方法
1)栈方法 “先进后出”
push(item,,item) 压栈 向数组末尾添加元素
pop() 出栈 删除数组末尾元素(删一个)
// 栈方法
var arr=[];
arr.push(100);
arr.push(200);
arr.push(300);
console.log(arr);//[100,200,300]
arr.pop();
arr.push('hello','world','hi');
console.log(arr);//[100,200,'hello','world','hi']
2)队列方法 “先进先出”
push() 进队
shift() 出队 删除数组头部元素
// 队列方法:
var arr=[];
arr.push(100);
arr.push(2,3,4,6);
console.log(arr);//[100,2,3,4,6]
arr.shift();
console.log(arr);//[2,3,4,6]
3)数组操作方法
concat(arr,arr) 合并数组
【注意】产生新数组,原数组不变;
concat()//复制数组
unshift(item,item) 在数组头部插入元素(item)
【注意】修改原数组
返回的为新数组的长度
splice(index,howmany) index:开始位置 howmany:从起始位置开始删除个数
【注意】
返回值为所删除的数据
修改原数组
splice(index,howmany,item,,,item) 删完以后将 item,,代替所删除的位置
【注意】 修改原数组
返回删除添加过后的数组
slice(start,end) 截取数组 [start,end)从开始截取到结尾(左闭右开)
【注意】不修改原数组,产生新数组
slice(0)//复制数组
// 操作方法
var arr=[100,200,300];
var arrx=[102,30,40];
var arr0=['hello','world'];
var arr1=arr.concat(arr0,arrx);
console.log(arr1);// [100, 200, 300, "hello", "world", 102, 30, 40]
console.log(arr);//[100,200,300]
console.log(arr0);//['hello','world']
arr.unshift('我','是');
console.log(arr);//['我','是',100,200,300]
arr.splice(1,2);
console.log(arr);//['我',200,300]
arr1.splice(1,1,8,9,100);
console.log(arr1);//[100, 8, 9, 100, 300, "hello", "world", 102, 30, 40]
var arr2=[10,20,80,100];
var arr4=arr2.slice(2,3);
console.log(arr4);//[80];
4)排序方法
sort() 排序 升序
【注意】默认情况按照字符串排序(比较ASCII)
其他排序:需要将排序算法(函数形式)传入参数内
arr.sort(function(a,b){
return a-b;//升序
})
arr.sort(function(a,b){
return b-a;//降序
})
reverse() 颠倒数组
【注意】修改了原数组
// 排序方法
var arr=[100,80,90,200];
arr.reverse();
console.log(arr);//[200,90,80,100]
var arr1=[9,8,1,2,5];
var arr2=[10,20,5,9,8,30];
arr1.sort();//排序 升序
console.log(arr1);//[1, 2, 5, 8, 9]
arr2.sort(function(a,b){
if(a>b){
return 1;
}else if(a<b){
return -1;
}
return 0;
});
// 升序
arr2.sort(function(a,b){
return a-b;
});
console.log(arr2);//[5, 8, 9, 10, 20, 30]
5)与字符串相关的方法
join(sp) 通过指定字符将数组拼接成字符串
注释:str.slipt(sp);//将字符串通过指定字符分割成数组
【注意】这两种方法可以将字符串和数组任意转换
var arr=[100,200,300,400];
// var str=arr.join('?');
var str=arr.join(' ');//100 200 300 400
console.log(str);
var arr0=str.split(' ');//["100 200 300 400"]
console.log(arr0);
新增方法
forEach(fn) :遍历数组
fn:回调函数(自动执行,每遍历一次执行一次)
自身可以拥有三个参数:index(索引),item(元素),arr(数组)
indexOf() :判断元素在数组中的位置
(若有重复,则只返回第一个元素的位置;返回位置,没有返回-1)
some(fn) :校验数组中是否有满足条件的元素
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回布尔类型)
every(fn) :判断每一个元素是否满足条件
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回布尔类型)
filter(fn) :检测数据,筛选过滤满足某个条件的元素
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回一个新数组)
map() :检测数据,筛选数据是否满足某个条件
fn:回调函数 三个参数:index item arr
需要return语句(有返回值,返回一个新数组,数组中是每个元素是否满足的布尔类型)
reduce(fn) :计算
参数:fn(total,item,index,arr)
初次状态:total(值为第一个元素)
其他:total(指的是最终结果)
需要return语句(有返回值,返回的是运算结果)
reduceRight() :功能和reduce一样(total是倒着计算)