console.log("------默认排序(ASCII字符排序)------");
var arr = [1,2,55,12,88];
arr.sort(); //ASCII字符代码从小到大排序
console.log(arr.toString());
console.log("------自定义函数排序------");
var arr1 = [1,2,55,12,88];
arr1.sort(function(a,b){ //自定义函数排序
var a1= parseInt(a);
var b1= parseInt(b);
if(a1<b1){
return -1;
}else if(a1>b1){
return 1;
}
return 0;
});
console.log(arr1.toString());
console.log("------反转数组------");
var reArr = arr1.reverse(); //将数组中元素的顺序倒转
console.log(reArr.toString());
console.log("------按年龄正序排序------");
var arr2 = [];
arr2.push({date:"20130101",name:"lee",age:2});
arr2.push({date:"20130101",name:"wang",age:12});
arr2.push({date:"20130202",name:"huang",age:30});
arr2.push({date:"20130202",name:"keke1",age:14});
arr2.push({date:"20130202",name:"keke2",age:31});
arr2.push({date:"20130303",name:"keke3",age:56});
arr2.push({date:"20130303",name:"keke4",age:22});
arr2.push({date:"20130303",name:"keke5",age:32});
arr2.sort(function(a,b){
if(a.age<b.age){
return -1;
}else if(a.age>b.age){
return 1;
}
return 0;
});
for(var i=0;i<arr2.length;i++){
console.log(arr2[i].date + ", " + arr2[i].name + ", " + arr2[i].age);
}
console.log("------按date倒序,age正序排序------");
arr2.sort(function(a,b){
if(a.date<b.date){
return 1;
}else if(a.date>b.date){
return -1;
}else{
if(a.age<b.age){
return -1;
}else if(a.age>b.age){
return 1;
}
return 0;
}
});
for(var i=0;i<arr2.length;i++){
console.log(arr2[i].date + ", " + arr2[i].name + ", " + arr2[i].age);
}
运行结果:
------默认排序(ASCII字符排序)------
1,12,2,55,88
------自定义函数排序------
1,2,12,55,88
------反转数组------
88,55,12,2,1
------按年龄正序排序------
20130101, lee, 2
20130101, wang, 12
20130202, keke1, 14
20130303, keke4, 22
20130202, huang, 30
20130202, keke2, 31
20130303, keke5, 32
20130303, keke3, 56
------按日期倒序,年龄正序排序------
20130303, keke4, 22
20130303, keke5, 32
20130303, keke3, 56
20130202, keke1, 14
20130202, huang, 30
20130202, keke2, 31
20130101, lee, 2
20130101, wang, 12
多维数组定义
定义数组数组对象用来在单独的变量名中存储一系列的值。使用关键词 new 来创建数组对象。
一维数组定义
var myArray=new Array('a','b','c'); 或 var myArray = [];
二维数组及多维数组定义
javascript二维数组或多维数组都是通过一维数组来模拟起来.
方法1.
var arr= new Array(['a','b','c'],['d','e','f']);
方法2:
var arr=new Array(
new Array(),
new Array(),
new Array()
);
数组访问:
arr[行][列];
如:
arr[0][0] // a
arr[1][0] //d
hash数组定义
JavaScript中的关联数组,关联数组因为有key值的索引,所以在数组查找中比较便利,同时也使得相应的代码算法实现显得更清晰,易读易维护.
var myhash = new Array();
向Hash关联数组添加键值
myhash['new'] = 'newval';
myhash['new2'] = 'newval_2';
访问Hash关联数组
myhash['new']; // 跟上键名就能访问
删除Hash数组已有键值delete myhash['new'];
遍历Hash数组
for(key in myhash){ console.log(key); //key 获取的是键名 myhash[key]; // 获取值}
js数组操作常用方法
toString():把数组转换成一个字符串
toLocaleString():把数组转换成一个字符串
join():把数组转换成一个用符号连接的字符串
shift():将数组头部的一个元素移出
unshift():在数组的头部插入一个元素
pop():从数组尾部删除一个元素
push():把一个元素添加到数组的尾部
concat():给数组添加元素
slice():返回数组的部分
reverse():将数组反向排序
sort():对数组进行排序操作
splice():插入、删除或者替换一个数组元素