2016-06-09 2 views
0

날짜 배열을 정렬하려고합니다. 그것은 완벽합니다. 그러나 5 월 4 일은 배열의 마지막 요소에 잘못 표시됩니다. 이 문제를 해결하도록 도와 주시겠습니까?자바 스크립트로 날짜 배열을 정렬하는 방법?

var listOfString = "2016-05-24|Failed,2016-05-04|Failed,2016-04-19|Passed,2016-04-15|Passed,2016-06-01|Failed"; 
     var arrayStrings = listOfString.split(','); 
     var dateArray = new Array(); 
     var count = 0; 
     for (var i = 0; i < arrayStrings.length; i++) { 
      dateArray[count++] = new Date(arrayStrings[i].split('|')[0]); 
     } 
     dateArray.sort(); 

     for (var i = 0; i < dateArray.length; i++) { 
      alert(dateArray[i]); 
     } 

출력

로서 수신
Fri Apr 15 2016 05:30:00 GMT+0530 (India Standard Time) 
Tue Apr 19 2016 05:30:00 GMT+0530 (India Standard Time) 
Tue May 24 2016 05:30:00 GMT+0530 (India Standard Time) 
Wed Jun 01 2016 05:30:00 GMT+0530 (India Standard Time) 
Wed May 04 2016 05:30:00 GMT+0530 (India Standard Time) 
+1

이미 앞의 0으로 y-m-d 순서로되어 있으므로 문자열로 정렬하지 않는 이유는 무엇입니까? 결과를 보려면'console.log'를 사용하십시오. 경고는 좋은 방법이 아닙니다. –

답변

0

해결책 : 순서 (YMD)를 내림과 선행 제로로 스트링 같은 값을 갖기 때문에 그들이 또한 정렬 의미

var listOfString = "2016-05-24|Failed,2016-05-04|Failed,2016-04-19|Passed,2016-04-15|Passed,2016-06-01|Failed"; 
     var arrayStrings = listOfString.split(','); 
     var dateArray = new Array(); 
     var count = 0; 
     for (var i = 0; i < arrayStrings.length; i++) { 
      dateArray[count++] = arrayStrings[i].split('|')[0]; 
     } 
     dateArray.sort(); 

     for (var i = 0; i < dateArray.length; i++) { 
      console.log(dateArray[i]); 
     } 
1

문자열. 이 경우 변환 할 필요가 없습니다. 분할 후 문자열 배열로 정렬하면됩니다.

0
date.sort() 당신은 .sort() 자동으로 날짜를 처리 할 것입니다하지만 불행히도, 그런 경우가 아니라고 가정이

dateArray.sort(function(a,b) { 
     return a-b; 
    }); 

반환

VM126:57 Fri Apr 15 2016 05:30:00 GMT+0530 (IST) 
VM126:57 Tue Apr 19 2016 05:30:00 GMT+0530 (IST) 
VM126:57 Wed May 04 2016 05:30:00 GMT+0530 (IST) 
VM126:57 Tue May 24 2016 05:30:00 GMT+0530 (IST) 
VM126:57 Wed Jun 01 2016 05:30:00 GMT+0530 (IST) 

로 변경

. alphabetical 또는 numerical 중 하나만 수행하면 결과가 나타납니다. 문제를 해결하기 위해 아이템이 버블 정렬에서 순서대로 앞 또는 뒤를 결정하는 콜백 함수를 추가했습니다. 날짜를 빼면 두 날짜 사이의 초 수가 반환됩니다.이 숫자는 숫자이며 빼기 쉽고 반환 할 수 있습니다. 종류의 차이.

관련 문제