2016-10-05 4 views
2

, например, в моем массиве у меня есть эти данныеКак отсортировать массив яваскрипта по дате

var mydate = [ 
"2016,10,01", 
"2016,09,13", 
"2016,09,05", 
"2016,09,09", 
"2016,10,02"]; 

Как разобраться в этом? Я хочу, чтобы этот вывод:

2016,09,05 
2016,09,09 
2016,09,13 
2016,10,01 
2016,10,02 
+1

Есть несколько способов, вы можете сделать это, супер простой пример: удалить запятые, поворот он в int и использует общий тип int. – DBS

+2

mydate.sort() - это наименьшее число, которое вы могли бы сделать – Tester

+0

@DBS или ничего не удалить и отсортировать строку – mplungjan

ответ

0

Вам придется разобрать дату в дату объекта и затем отсортировать с помощью date.getTime()

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a,b){ 
 
    var da = new Date(a).getTime(); 
 
    var db = new Date(b).getTime(); 
 
    
 
    return da < db ? -1 : da > db ? 1 : 0 
 
}); 
 
console.log(mydate)

1

Используйте Array#sort метод с Date конструктора.

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a, b) { 
 
    return new Date(...a.split(',')) - new Date(...b.split(',')); 
 
}); 
 

 
console.log(mydate);

Spread syntax не поддерживается браузером старой в этом случае делать это нравится.

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a, b) { 
 
    var a1 = a.split(','), 
 
    b1 = b.split(','); 
 
    return new Date(a1[0], a1[1], a1[2]) - new Date(b1[0], b1[1], b1[2]); 
 
}); 
 

 
console.log(mydate);

+0

Вы можете объяснить дату (... a.split (',')) – sheetal

+0

@sheetal: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator –

+0

@sheetal: который помогает обрабатывать значение массива как аргумент –

5

Простой mydate.sort() мог бы сделать это.

+0

w0w nice function Я не знал, что он существует – Beginner

+0

Будет ли '.sort()' не сортировать по строковым значениям? – Rajesh

+0

Вы видели что-нибудь еще в вопросе? – Tester

Смежные вопросы