1、数组
1-1数组的概念
一组数据的有序结合
1-2、数组创建的俩种方式
字面量定义法
var arr =[]; 空数组
var arr = [10,20,30,40,50];
构造函数定义法
var arr = new Array();空数组
var arr = new Array(10,20,30,40,50);
1-3数组元素的获取
数组名[下标]
1-4、数组的下标
数组给内部的元素定义一个下标,下标从0开始,数组的最后一个下标为 arr.length-1
数组的下标范围为0--arr.length-1
例子:
var arr = [10,20,30,40,50];
console.log(arr[0]);---->下标从0开始,打印结果为10
console.log(arr[1]);----->打印结果为20
console.log(arr[2]);----->打印结果为30
console.log(arr[3]);----->打印结果为40
console.log(arr[arr.length-1]);---->最后一个下标,打印结果为50
2、遍历数组
语法:
1、for(var i = 0; i < arr.length; i++){
数组遍历的固定结构
}
例子:
var arr =[10,20,30,40,50];
for(var i =0;i<arr.length;i++){
console.log(arr[i]);--->打印结果为10,20,30,40,50
}
console.log(arr.length);---->数组的长度 打印结果为5
语法:
2.for(变量 in 对象)
{
在此执行代码
}
例子:
var arr =[10,20,30,40,50];
for(var i in arr){
console.log(arr[i]);
}
3、数组的增删改查方法
3-1、push()/pop()
push 在数组的末尾添加一个或多个元素
pop 删除数组最后一个元素(只能删除一个)
例子:
var arr=[10,20,30,40,50]
arr.push(23,24,25);----->在末尾添加23,24,25
arr.pop()---->删除末尾最后一个元素
console.log(arr);---->打印结果为10,20,30,40,50,23,24,
3-2、unshift()/shift()
unshift 在数组的开头添加一个或多个元素
shift 删除数组的第一个元素(只能删除一个)
例子:
var arr=[10,20,30,40,50]
arr.unshift(23,24,25);----->在开头添加23,24,25
arr.shift()---->删除开头第一个元素
console.log(arr);---->打印结果为24,25,10,20,30,40,50
3-3、join()/reverse()
join 将数组拼接为字符串
reverse 将数组元素进行倒序
join例子:
var arr =[12,43,45,"张三","李四",10]
var str=arr.join("-");--->将数组元素以-拼接为字符串(-会代替逗号)
console.log(str);-->打印结果为12-43-45-张三-李四-10
console.log(typeof str);---->检测为string类型
reverse例子:
var arr =[12,43,45,"张三","李四",10]
arr.reverse();--->将数组元素进行倒序
console.log(arr);--->打印结果为10,李四,张三,45,43,12
3-4、sort()/concat()
sort 对数组元素进行排序
concat 将数组元素进行拼接
sort 例子:
var arr=[12,34,65,3,5,34,23,45];
arr.sort(function(a,b){
return a-b;
});
console.log(arr);--->结果为从小到大排序
如果return为b-a; 那么结果为从大到小排序
concat例子:
var arr=[12,34,65,3,5,34,23];
var arr1=[12,34,65];
var arr2=arr.concat(arr1);---->将数组元素进行拼接
console.log(arr2);--->打印结果为12,34,65,3,5,34,23,12,34,65
3-5、splice()/slice()
1、splice 数组中添加或删除元素;
splice(index)传入一个参数(index代表下标),删除index以及后面的所有元素
splice(index,len)传入2个参数,删除index以后len个元素
splice(index,len,ys..)传入3个参数,删除index以后len个元素,将ys添加到index后面;
2、slice 截取数组的一部分,包左不包右
splice 例子:
var arr = [12,34,5,34,78,90,45];
arr.splice(3);-->删除3号元素后所有的元素(包括3号)
console.log(arr);-->结果为12,34,5
var arr = [12,34,5,34,78,90,45];
arr.splice(2,1);-->删除2号元素后面的1个元素
console.log(arr);-->结果为12,34,34,78,90,45
var arr = [12,34,5,34,78,90,45];
arr.splice(2,1,"新增","增加");-->删除2号元素后面的1个元素,在2号元素后添加“新增”,"增加"新的元素;
console.log(arr);-->结果为12,34,“新增”,“增加”,34,78,90,45
slice 例子:
var arr = [12,34,5,34,78,90,45];
var newArr=arr.slice(2,5);
console.log(newArr);--->结果为5,34,78
3-6、indexOf()
indexOf 查找元素第一次出现的位置
indexOf例子:
var arr[12,43,34,34,2,4,23,24];
console.log(arr.indexOf(34));--->结果为2;
console.log(arr.indexOf(50));--->结果为-1;
indexOf使用方法出现数组中没有的数都按-1处理
4、数组元素检测的俩种方法
1、arr instanceof Array
2、Array.isArray(arr);
检测arr是否为数组类型,是的话返回true,不是的话返回false
例子1:
var arr =[12,32.45,56];
console.log(arr instanceof Array);--->检测成功为true例子2:
var arr =[12,32.45,56];
console.log(Array.isArray(arr));---->检测成功为true
5、数组去重
var str = [12,12,34,34,54,56,3,54];
var newStr=[];
//循环遍历老数组
for(var i =0;i<str.length;i++){
//判断新数组中是否含有老数组中的元素,等于-1代表未找到,没找到就在尾部添加新元素
if(newStr.indexOf(str[i])==-1){
//往新数组中存放
newStr.push(str[i]);
}
}
console.log(newStr);