数组对象是JS中的内置对象
数组是引用类型的对象
特点:可以保存多个数据,而且数据个数随时可变
创建:
var arr1=[];//定义一个不包含元素的数组
var arr2=[29,22];//定义一个连续存储两个元素的数组
var arr3=new Array(num);//创建一个数组对象含num个元素
数组对象直接输出是,内容之间默认用,隔开
var arr=new Array(3);//每个元素都是undefined,输出时都是空字符,用逗号隔开
Array API
①arr.length
返回数组长度,随数组长度变化而自动变化,可以扩容缩容
//冒泡排序 升序
var arr=[2,13,4,7,29,1];
for(var n=1;n<arr.length;n++){
for(var i=0;i<arr.length-n;i++){
if(arr[i]>arr[i+1]){
var min=arr[i+1];
arr[i+1]=arr[i];
arr[i]=min;
}
}
}
document.write(arr);
②arr.toString
任何对象都有toString方法,转为字符串,实际只要+“”空字符串,就可以转换
③arr.valueOf
同arr.toString
④var str=arr.join("分隔符")
将数组转为字符串,可自定义分隔符
⑤var newArr=arr.concat(元素值,[数组],……)
用于数组拼接,不会改变原数组,返回新数组对象
⑥var newArr=arr.slice(start,end+1)
数组截取,截取数组下标从start开始,到end结束
⑦arr.splice
数组的删除
var a=[1,2,3,4];
var str=a.splice(0,2);
document.write(str);//返回被删除元素
数组的替换
var str=a.splice(1,2,22,33,44);
document.write(str);//返回被删除(替换)元素
document.write(a);//但删除的值得个数和替换的值得个数不同时,会自动调整数组容量
数组的插入
var str=a.splice(1,0,22,33,44);
document.write(a);//插入元素时,被删除的地方填0
⑧var str=a.reverse();
颠倒所有数组元素
⑨arr.sort();
//默认升序排序,字符串PK
//自定义排序时:第一步定义比较器,第二步将比较器传递给sort方法
var arr=[2,34,1,22,4];
var compare=new Function("a","b","return a-b;");
arr.sort(compare);
document.write(arr);
⑩arr.push 入栈(从结尾) 返回新数组长度
⑾arr.pop 出栈(从结尾) 返回数组的最后一个元素
⑿arr.unshfit 入栈(从开头)
⒀arr.shfit 出栈(从开头)
//将一个十进制数转为二进制
var a=parseInt(prompt("请输入一个十进制数:"));
var b=[];
while(a!=0){
b.push(a%2);
a=parseInt(a/2);
}
b.reverse();
document.write(b.join(""));
二维数组
//二维数组的创建
var arr1=[[23],[23,44],[34,22,44]];
var arr2=new Array();
arr2[0]=23;
arr2[1]=23,44;
arr2[2]=34,22,44;
//遍历二维数组
for(var i=0;i<a.length;i++){
for(var j=0;j<a[i].length;j++){
console.log(a[i][j]);
}
}
//关联数组
var cities={'北京市':['朝阳区','海淀区'],'天津市':['和平区']};
for(var i in cities){
document.write(i+":"+cities[i]+"<br>");
}