永发信息网

两个数组怎么进行排序

答案:2  悬赏:40  手机版
解决时间 2021-03-24 19:49
  • 提问者网友:锁深秋
  • 2021-03-23 20:41
["a","a1","a2","14908075","2017/6/8 10:57:16"]
["b","b1","b2","14908079","2017/6/7 10:57:16"]
这样的两个数组怎么根据时间排序,或者根据数字排序
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-03-23 22:12
代码已测试过。
<script type="text/javascript">
//首先你完整的数据格式应该是这样的:

var myData = [["b","b1","b2","14908079","2017/6/7 10:57:33"],["a","a1","a2","14908075","2017/6/8 10:57:16"],["b","b1","b2","14908079","2017/6/7 10:57:16"]]

var sortFn = function(a,b){

var reg = /\/|-|\s+|:/;

var dateArr1 = a[a.length-1].split(reg);

var dateArr2 = b[b.length-1].split(reg);

var date1 = new Date(dateArr1[0],dateArr1[1],dateArr1[2],dateArr1[3],dateArr1[4],dateArr1[5]);

var date2 = new Date(dateArr2[0],dateArr2[1],dateArr2[2],dateArr2[3],dateArr2[4],dateArr2[5]);

//降序
return date2.getTime()-date1.getTime();

//升序
//return date1.getTime()-date2.getTime();

}

myData.sort(sortFn);

console.log(myData);

</script>
全部回答
  • 1楼网友:躲不过心动
  • 2021-03-23 22:42
原理:先将两个数组复制到第三个数组中,然后对第三个数组排序 如果不使用第三个函数,那么下面这个函数一样可以做到,不过函数声明就要改成: char* fun(char *dest, char *str, char *dest) char* fun(char *str1,char *str2,char *dest) //前提,目标数组能偶容纳两个数组 { char *tmp=dest; char *tmp_dest=dest; if(!dest) return null; while(*str1) //将str1复制进dest *tmp++=*str1++; while(*str2) //将str2复制进dest *tmp++=*str2++; tmp_dest--; // while(*++tmp_dest) //选择排序法 { char *tmp_px=null; tmp=tmp_dest; while(*++tmp) //找到后面一串的最值 { if(*tmp_dest<*tmp) tmp_px=tmp; } if(!tmp_px) { char ch=*tmp_dest; *tmp_dest=*tmp_px; *tmp_px=ch; } } return dest; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯