一.创建数组
1.常规方法
var arr=new Array();
arr[0]="张三";
arr[1]="李四";
arr[2]="王五";
arr.log(arr) //(3) ["张三", "李四", "王五"]
2.简洁方式
var arr= new Array("张三", "李四", "王五");
console.log(arr); //(3) ["张三", "李四", "王五"]
3.字面量形式
var arr=["张三", "李四", "王五"];
console.log(arr); //(3) ["张三", "李四", "王五"]
二.数组的操作方法
1.push()
作用:在数组的末位新增元素
语法:arr.push(参数)
参数:新增的元素,可以是一个或者多个,多个使用逗号间隔
返回值:新增元素之后,新数组的长度,单元个数改变
var arr=["张三", "李四", "王五"];
arr.push("赵六");
console.log(arr); //(4) ["张三", "李四", "王五", "赵六"]
2.unshift()
作用:在数组的首位,新增元素
语法:arr.unshift(参数)
参数:新增的元素,可以是一个或者多个,多个使用逗号间隔
返回值:新增元素之后,新数组的长度,单元个数改变
var arr=["张三", "李四", "王五"];
arr.unshift("赵六");
console.log(arr); //(4) ["赵六", "张三", "李四", "王五"]
3.pop()
作用:删除数组的最后一个元素
语法:arr.pop()
参数:一次只能删除一个单元,没有参数
返回值:删除元素后的数组内容
var arr=["张三", "李四", "王五"];
arr.pop();
console.log(arr); //(2) ["张三", "李四"]
4.shift()
作用:删除数组的第一个元素
语法:arr.shift()
参数:一次只能删除一个单元,没有参数
返回值:删除元素后的数组内容
var arr=["张三", "李四", "王五"];
arr.shift();
console.log(arr); //(2) ["李四", "王五"]
5.splice()
作用:删除数组指定元素
语法:arr.splice(参数1,参数2,参数3)
参数:参数1:删除元素的起始索引下标,参数2:从起始索引开始,删除的元素的个数,参数3:可选,删除的所有的元素,作为一个整体,用一个内容来替换
返回值:删除或替换后的数组内容
var arr=["张三", "李四", "王五"];
arr.splice(1,1);
console.log(arr); //(2) ["张三", "王五"]
6.sort()
作用:数组的排序,默认按首位的数值大小排序
语法:arr.sort()
参数:为空默认从小到大排序,从小到大:数组.sort(function(a,b){return a-b}),从大到小:数组.sort(function(a,b){return b-a})
返回值:排序后的数组
var arr=[2, 8, 5];
arr.sort();
console.log(arr); //(3) [2, 5, 8] 默认从小到大排序
arr.sort(function(a,b){return b-a})
console.log(arr); //(3) [8, 5, 2] 从大到小
7.join()
作用:数组元素拼接为字符串,不改变原数组
语法:arr.join(参数)
参数:默认为逗号,如果不需要间隔符号,需要设定为空字符串
返回值:数组元素拼接的字符串
var arr=[2, 8, 5];
console.log(arr.join("")) //285
console.log(arr.join()) //2,8,5
8.reverse()
作用:数组元素反转排序,不改变原数组
语法:数组.reverse()
参数:无
返回值:反转之后的数组
var arr=[2, 8, 5];
console.log(arr.reverse()) //(3) [5, 8, 2]
9.concat()
作用:数组拼接,不改变原数组
语法:arr1.concat(arr2)
参数:需要拼接上的数组,多个中间用逗号隔开
返回值:拼接后的数组
var arr1=[1,2,3];
var arr2=["a","b","c"];
var arr3=["A","B","C"];
console.log(arr1.concat(arr2,arr3)) //(9) [1, 2, 3, "a", "b", "c", "A", "B", "C"]
10.slice()
作用:数组中返回选定的元素
语法:数组.slice(参数1,参数2)
参数:参数1:选定的起始位置,参数2:选定的结束位置(不包含)
返回值:选中的元素
var arr=["a","b","c"];
console.log(arr.slice(1,2)) //["b"]
11.reduce()
作用:元素累加
语法:arr.reduce(参数)
参数:回调函数function(total,num){return total+num;}
返回值:累加结果
var arr=[2,4,5,10];
console.log(arr.reduce(function(total,num){ //21
return total+num
}))
12.indexOf()
作用:查找数组中是否有某个值
语法:数组.indexOf("参数")
参数:想要查找的值
返回值:如果存在,返回该值所在的位置,不存在返回-1
var arr=["a","b","c"];
console.log(arr.indexOf("b")) //1
console.log(arr.indexOf("d")) //-1
13.every()
作用:是否所有元素符合条件
语法:数组.every()
参数:回调函数function(n){return 条件}
返回值:true/false
var arr=[2,4,5,10];
console.log(arr.every(function(n){
return 1<n; //true
}))
console.log(arr.every(function(n){
return 2<n; //false
}))
14.some()
作用:是否有元素符合条件
语法:arr.some(参数)
参数:回调函数function(n){return 条件}
返回值:true/false
var arr=[2,4,5,10];
console.log(arr.some(function(n){ //true
return 1<n;
}))
console.log(arr.some(function(n){ //true
return 2<n;
}))
15.forEach()
作用:遍历数组
语法:arr.forEach(参数)
参数:回调函数function(item,index,arr){操作} item:值,index:下标,arr:所属数组
返回值:无
var arr=[2,4,5,10];
console.log(arr.forEach(function(item,index,val){
console.log(item,index,val)
}))
16.map()
作用:映射
语法:arr.map(参数)
参数:回调函数function(n){return 操作}
返回值:新数组的元素个数与原始数组的元素个数相同,只是对这些数据进行了操作
var arr=[2,4,5,10];
console.log(arr.map(function(n){ //(4) [3, 5, 6, 11]
return 1+n;
}))
17.filter()
作用:过滤
语法:arr.filter(参数)
参数:回调函数function(n){return 操作}
返回值:符合条件的元素
var arr=[2,4,5,10];
console.log(arr.filter(function(n){ //(3) [4, 5, 10]
return 3<n;
}))
18.fill()
作用:将一个固定值替换数组的元素
语法:arr.fill(参数)
参数:需要替换的值
返回值:替换后的数组
var arr=[2,4,5,10];
console.log(arr.fill(1)) //(4) [1, 1, 1, 1]