数组内置方法:
var arr=[10,20,30,40];
(1)栈方法(先进后出) 修改了原数组
push(item....item) 在数组末尾添加元素
pop 删除数组末尾元素
arr.push(50,60);
arr.pop();
console.log(arr.push(50,60););//返回的是修改后的数组长度
console.log(arr.pop(););//返回删除数组末尾元素
console.log(arr);[10,20,30,40,50];
(2)队列方法(先进先出) 修改了原数组
push() 在数组末尾追加元素
shift() 删除数组第一个元素
arr.push(50,60);
arr.shift() ;
console.log(arr.push(50,60););//返回的是修改后的数组长度
console.log(arr.shift());//返回删除数组第一个元素
console.log(arr);[20,30,40,50,60];
(3)数组操作方法
concat(arr...) 数组合并 返回新数组
unshift(item...) 在数组头部插入元素 修改
slice(start,end) 截取数组 [start,end) 未修改
splice: 修改
splice(index,howmany) 删除数组元素
splice(index,howmany,item...) 先删除,再添加
//concat(arr...)
var arr0=arr.concat();//数组合并产生新的数组
console.log(arr0); //[10,20,30,40]arr的修改不会影响新的数组
var arr1=[80,60];
console.log(arr1.concat(arr0));//[10,20,30,40,80,60]
//unshift(item...)
arr.unshift(100);
console.log(arr.unshift(100));//返回的是长度
console.log(arr);//[100,10,20,30,40]
// slice[start,end)
var arr0=arr.slice(1,2);
console.log(arr0);//[20]
var arr1=arr.slice(0);//复制 返回新的数组
console.log(arr1);
//splice:
//splice(index,howmany) 删除数组元素
//splice(index,howmany,item...) 先删除,再添加
var arr=[10,20,30,40];
var arr1=arr.splice(1,1);
console.log(arr);//[10, 30, 40]
console.log(arr1);//[20]
var arr0=arr.splice(0,1,'你好');
console.log(arr0);//[10]
console.log(arr);//["你好", 30, 40]
arr.splice(1,0,2,2);
console.log(arr);// ["你好", 2, 2, 30, 40]
(4)排序方法 修改
sort 排序(默认按照字符串排序)
reverse 倒叙
var arr=[20,10,30,50,4];
arr.sort();
console.log(arr);//按ASCII码排序[10, 20, 30, 4, 50]
//升序
arr.sort(function(a,b){
if (a>b) {
return 1;
}else if (a<b) {
return -1;
}else{
return 0;
}
});
console.log(arr);//[4, 10, 20, 30, 50]
//降序
arr.sort(function(a,b){
if (a>b) {
return -1;
}else if (a<b) {
return 1;
}else{
return 0;
}
});
console.log(arr);//[50, 30, 20, 10, 4]
var arr=['how','are','you'];
arr.reverse();
console.log(arr);// ["you", "are", "how"]
5)其他方法
join(sp) 使用指定字符将数组元素拼接为字符串
var arr=['how','are','you'];
var str=arr.join(':');
console.log(str);//how:are:you
(6)新方法
forEach(fn) 遍历
fn函数有三个参数
item 数组元素
index 索引
arr 数组自身
var arr=[2,31,52,12,2];
//遍历
arr.forEach(function(item,index,arr){
console.log(item);
});
some(fn) fn 有三个参数 //判断数组中是否有满足规则的(有一个即可)
every(fn) fn 有三个参数 // 判断数组中是否均满足规则的
var arr=[12,34,25,62,45];
//判断数组中是否有满足要求的(有一个即可)
var a=arr.some(function(item,index,arr){
return item>50;
});
console.log(a);//输出结果为true或false
//判断数组中是否均满足要求
var b=arr.every(function(item,index,arr){
return item>5;
});
console.log(b); //输出结果为true或false
indexOf 查找元素在数组中的位置 找不到 -1
lastIndexOf 从后向前查找数组中是否包含元素 找不到 -1
a=[0,1,2,1,0];
a.indexOf(1);//=>1 a[1]=1
a.lastIndexOf(1);//=>3 a[3]=1
a.indexOf(3);//=>-1