JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#、Java中“数组、List、HashMap/Dictionary”等的超强综合体。
Array数组
使用方式:
例1:
var citys = new Array();//创建数组对象,无需初始化长度,动态
citys[0] = ‘上海‘;
citys[1] =‘北京‘;
citys[2] = ‘深圳‘;for(var i=0; i< citys.length; i++){
alert(citys[i]);
}
例2(推荐):
var arr=[10,true,‘哇咔咔‘];
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
forin遍历Array数组
var arr=[‘哈尼族‘,‘壮族‘,‘满族‘,‘漂族‘];
for(var item in arr){
alert(item+‘====‘+arr[item]);
}
Array键值对
使用方式
例如:
var arr=new Array();
arr["name"]=‘Jack‘;
arr["age"]=28;
arr["gender"]=‘fale‘;
arr["height"]=180;
for(var item in arr){
alert(item+‘====‘+arr[item]);
}
遍历Array键值对
forin循环
var arr={name:‘James‘,age:28};
for(var item in arr){
alert(item+‘===‘+arr[item]);
}
通过对象.键
var arr={name:‘James‘,age:28};
alert(arr.name);
alert(arr.age);
方法传值
function f1(s){
alert(s.name);
alert(s.age);
}
f1({name:‘Rose‘,age:20});特殊的家伙
例1:
var arr=[{name:‘James‘,age:19},{name:‘Rose‘,age:18},{name:‘Max‘,age:20}];
for(var i=0;i<arr.length;i++){
alert(arr[i].name+‘===‘+arr[i].age);
}例2:
var code={name:‘Max‘,children:[{name:‘jack‘,age:20},{name:‘rose‘,age:18}]};
alert(code.name);
for(var i=0;i<code.children.length;i++){
alert(code.children[i].name+‘>>‘+code.children[i].age);
}//当然forin也可以,但麻烦
for(var item in code.children){
alert(item+‘>>‘+code.children[item].name+‘===‘+code.children[item].age);
}
Array比较
自定义一个通用的比较方法
function max(arr,compare){
var m=arr[0];
for(var i=1;i<arr.length;i++){
if(compare(arr[i],m)){
m=arr[i];
}
}
return m;
}var s1=max([12,32,33,100,8],function(n1,n2){
return n1>n2;
});
alert(s1);var s2=max(["aa","bbbb","ccc"],function(n1,n2){
return n1.length>n2.length;
});alert(s2);
Javascript中的比较方法sort()
例1:
var arr=[23,12,56,200,45];
arr.sort(function(n1,n2){
return n1>n2;
});
alert(arr);var arrStr=["aa","bbb","cccc"];
arrStr.sort(function(n1,n2){
return n1.length>n2.length;
});
alert(arrStr);
例2:
var arr=[{name:‘Bob‘,age:100},{name:‘Tom‘,age:23},{name:‘Rose‘,age:78}];
arr.sort(function(n1,n2){
return n1.age>n2.age;
});
for(var i=0;i<arr.length;i++){
alert(arr[i].name);//Tom,Rose,Bob
}