2014-05-05 37 views
0

我有这样一组字符串:排序日期的数组与字符串中混合

"No Value" 
04/08/2014 
04/16/2014 
04/18/2014 
04/21/2014 

我希望他们升序排列就像我上面并实施类似的代码:

data.sort(function(a,b){ 
    if(a.label === "No Value" || b.label === "No Value") return 1; 
    return new Date(a.label) - new Date(b.label); 
}); 
但是我

排序总是回来如:

04/08/2014 
"No Value" 
04/16/2014 
04/18/2014 
04/21/2014 

我在做什么错在这里?似乎挺直。

+0

'if(a.label ===“No Value”|| b.label ===“No Value”)return 1;'是错误的。 –

回答

2
data.sort(function(a,b){ 
    if(a.label === "No Value") 
     return -1; 
    else if(b.label === "No Value") 
     return 1; 
    else 
     return new Date(a.label) - new Date(b.label); 
}); 
+1

+1没有尝试,但看起来不错。 –

+1

'return(b.label ===“No Value”) - (a.label ===“No Value”)新日期(a.label) - 新日期(b.label);'(将多个“无值”等同比较的好处):-) – Bergi