- 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():插入、删除或者替换一个数组元素
根据日期最小的那天的开始和结束时间
function split2Object(){
var stringArr=[
"14081160917739755143997185288300092016-03-0413:00",
"14081160917739755143997185288300092016-03-0414:00",
"14081160917739755143997185288300092016-03-0613:00",
"14081160917739755142371188668900962016-03-0613:00",
"14081160917739755142371188668900962016-03-0413:00",
"14081160917739755142371188668900962016-03-0614:00"];
var objArr=[];
for (var i = 0; i < stringArr.length; i++) {
var temp=stringArr[i];
var gymId=temp.substr(0,"14081160917739755".length);
var yardId=temp.substr("14081160917739755".length,"14237118866890096".length);
var date=temp.substr("1408116091773975514237118866890096".length,"2016-03-04".length).replace(/-/g,"");
var time=temp.substr("14081160917739755142371188668900962016-03-04".length,"13:00".length).replace(":","");
objArr.push({"gymId":gymId,"yardId":yardId,"date":date,"time":time,"datetime":date+time,"id":temp});
}
var sortArr=sort(objArr);
var endData=getEndData(sortArr);
console.log(sortArr[0])//开始
console.log(endData);//结束
}
function sort(arr){
arr.sort(function(a,b){
if(a.datetime<b.datetime){
return -1;
}else if(a.datetime>b.datetime){
return 1;
}
return 0;
});
// for(var i=0;i<arr2.length;i++){
// console.log(arr2[i].id + ", " + arr2[i].date + ", " + arr2[i].time+", " + arr2[i].datetime+", " + arr2[i].yardId);
// }
/*console.log("------按datetime正序,age正序排序------");
arr2.sort(function(a,b){
if(a.datetime<b.datetime){
return -1;
}else if(a.datetime>b.datetime){
return 1;
}else{
if(a.yardId<b.yardId){
return -1;
}else if(a.yardId>b.yardId){
return 1;
}
return 0;
}
});
for(var i=0;i<arr2.length;i++){
console.log(arr2[i].id + ", " + arr2[i].date + ", " + arr2[i].time+", " + arr2[i].datetime+", " + arr2[i].yardId);
}*/
return arr;
}
function getEndData(arr){
var firstData=arr[0];
var endData=firstData;
for(var i=1;i<arr.length;i++){
console.log(arr[i].yardId+";"+firstData.yardId+";"+arr[i].date+";"+firstData.date);
if(arr[i].yardId==firstData.yardId&&arr[i].date==firstData.date){
endData=arr[i];
console.log(endData);
}
}
return endData;
}