Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中根据数组长度和数组值(日期格式)对数组进行排序?_Javascript_Arrays - Fatal编程技术网

在javascript中根据数组长度和数组值(日期格式)对数组进行排序?

在javascript中根据数组长度和数组值(日期格式)对数组进行排序?,javascript,arrays,Javascript,Arrays,我有一个场景,其中我有一个包含对象的数组数组,我需要对数组进行排序,其中长度为1的内部数组显示在顶部,长度大于1的内部数组根据对象内部的值进行排序 a=[{c:“11-01-2020”}、{c:“12-01-2020”}、{c:“12-01-2020”}、{c:“13-01-2020”}、{c:“13-01-2020”}、{c:“14-01-2020”}] 函数sortfn(a,b){ 如果(a.length==1&&b.length==1){ 返回0; } 如果(a.length==1||

我有一个场景,其中我有一个包含对象的数组数组,我需要对数组进行排序,其中长度为1的内部数组显示在顶部,长度大于1的内部数组根据对象内部的值进行排序

a=[{c:“11-01-2020”}、{c:“12-01-2020”}、{c:“12-01-2020”}、{c:“13-01-2020”}、{c:“13-01-2020”}、{c:“14-01-2020”}]
函数sortfn(a,b){
如果(a.length==1&&b.length==1){
返回0;
}
如果(a.length==1||
(a[0].c>b[0].c)&&
a、 长度!==1&&
b、 长度!==1
) {
返回-1;
}
返回1;
}
a、 排序(sortfn);

console.log(a)
这对您不起作用吗

设a=[{c:2}]、{c:4}、{c:4}、{c:3}、{c:3}、{c:1}]]
a、 排序((a,b)=>a[0].c-b[0].c);

log(a)
您可以先检查长度,然后按日期字符串排序

const
getISODate=custom=>custom.replace(/^(\d{2})-(\d{2})-(\d{4})$/,“$3-$2-$1”),
sortFn=(a,b)=>(b.length==1)-(a.length==1)| | getISODate(a[0].c).localeCompare(getISODate(b[0].c)),
数组=[{c:“11-01-2020”}、{c:“12-01-2020”}、{c:“12-01-2020”}、{c:“13-01-2020”}、{c:“13-01-2020”}、{c:“14-01-2020”}]
sort(sortFn);
console.log(数组)

.as console wrapper{max height:100%!important;top:0;}
我修改了上面的文章,使用date进行排序,它成功了

多谢各位
函数sortfn(a,b){
返回(b.length==1)-(a.length==1)| |新日期(b[0].c)–新日期(a[0].c);
}
设a=[{c:“11-11-2020”]、{c:“12-11-2020”}、{c:“12-11-2020”}、{c:“13-11-2020”}、{c:“13-11-2020”}、{c:“14-11-2020”}];
a、 排序(sortfn);

控制台日志(a)
子数组中的所有对象是否具有相等的
c
值?长度为1的数组是否在它们之间排序?是的,所有子数组将具有长度为1的值。长度为1的数组在它们之间不排序,也不是必需的,但应将其放置在顶部。当我制作代码片段时,您的代码出现错误-您需要定义
firstObject
您忘记了长度…您可以编辑已编辑问题的解决方案吗???@kishoreRajendran,请参阅编辑。