["a","a1","a2","14908075","2017/6/8 10:57:16"]
["b","b1","b2","14908079","2017/6/7 10:57:16"]
这样的两个数组怎么根据时间排序,或者根据数字排序
两个数组怎么进行排序
答案:2 悬赏:40 手机版
解决时间 2021-03-24 19:49
- 提问者网友:锁深秋
- 2021-03-23 20:41
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 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>
<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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯