一.什么是数组
就是一组数组,它是一个特殊对象类型
!!!判断是否为真数组
typeof([ ]);//object,采用Array.isArray([ ]),是数组返回true,不是数组返回false
二.数组的创建方式
- 1.语法糖(数组的字面表达试)
var arr[ ];
- 2.实例化(new)数组,new创建
var arr = new Array(10);
//new Array的时候,传入一个数值,它表示数组的长度
var arr Array();
三.数组的length属性
数组的长度是可以被修改
var arr [11,22,33,44,55];
console.log(arr.lenght);//4
//修改了数组的长度
arr.lenghth =1
console.log(arr);//[11]
//如果再把长度改回来,原数组的成员已经丢失
四.数组的循环
- 1.遍历(循环)数组
var arr = [11,22,33,44,55];
for (var i=0;i<arr.length;i++){
//console.log();
console.log(i,arr[i]);
}
- 2.数组还可以使用 for in
当数组的下标不是数值的时候,那需要使用for in
var arr ["你好",true,100];
for (var k in arr){
console.log(k;arr[k]);
}
- 3.特殊场景 使用 for...in
var arr = [ ];
arr ["a"]="周杰伦"
arr ["b"]="刘德华"
arr ["c"]="蔡依林"
console.log(arr);
for(var key in arr){
console.log(key,arr[key]);
}
!!!!for与for in
在遍历的时候,for的下标是数值,根据length长度,决定遍历次数
for in,的下标是字符串,根据真实成员个数,决定遍历次数
//数组的的下标,特殊处理
//数组的下标可以是任意类型,只在for循环的时候iu,不会被遍历到
//for循环的下标只能是数值类型
var arr=[11,22,33,44];
arr[-1]="你好";
arr[1.2]="hhh";
arr[true]="我我";
console.log(arr);
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
for(var key in arr){
console.log(arr[key]);
}
五.数组的方法
- 1.pop()删除数组的最后一位,返回被删除的元素,改变原数组
var arr [11,22,33,44,55 ];
arr.pop();//55
console.log(arr)//[11,22,33,44]
- 2.push()往数组的最后一位添加新的多个成员,返回新数组的长度,改变原来数组
- 3.unshift()往数组的第一个位置添加多个成员,返回新数组的长度,改变原来数组
- 4.shift()删除数组第一位的成员,返回被删除的成员,改变原来数组
- 5.sort()它是根据ascll码值,进行比较,如果成员十位数以上,就不准备,就需要在sort()里定义一个函数,改函数2个参数,a-b,升序,b-a,降序
var arr = [11,22,33,44,66];
arr.sort(function(a,b){
retrun a-b;
})
- 6.reverses()倒叙
- 7concat ()合并,可以合并数组,还能合并其他类型的数据,也能一次性合并多个条件 返回一个新得数组,不会改变原来得数组
var arr1=[11,22];
var arr2=["你好";"周杰伦"];
var arr3 = arr1.concat(arr2)
//多个合并
var arr3 = arr1.concat(arr2,99,true,[ ])
8.slice 截取 不会改变原数组
slice (开始位置,结束位置) 截取 结束位置到前一位(不包括结束位置)
slice(开始位置) 从开始位置到最后一位 //只写一个参数的话
不会改变原数组
console.log("=====slice");
var aaa=[11,22,33,44,55]
console.log(aaa.slice(2,4));//[33,44]
console.log(aaa);//返回原数组
- 9 splice() 会改变原数组
2个参数: 删除 splice(下标(开始位置),删除个数) 返回被删除的元素.返回一个数组
3个参数:splice(下标,0,插入几个)
0,插入 1以上是替换(替换的个数)
//(3,1,"你好")
//splice (开始位置i,删除个数)
// (开始位置i,0,插入个数)
// (开始位置i,1,替换的内容)
- 10 join()
//默认返回带有 , 的字符串
//也可以指定格式
//如果是空字符串,就会返回一段字符串
总结
不改变原数组的:
concat:连接多个数组,返回新的数组
join:将数组中所有元素以参数作为分隔符放入一个字符
slice:slice(start,end),返回选定元素
map,filter,forEach,some,every等不改变原数组
改变原数组的:
shift:将第一个元素删除并且返回删除元素,空即为undefined
unshift:向数组开头添加元素,并返回新的长度
pop:删除最后一个并返回删除的元素
push:向数组末尾添加元素,并返回新的长度
reverse:颠倒数组顺序
sort:对数组排序
splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回
网友评论