Метод sort()
мутирует массив, для которого он вызывается , поэтому правильная вещь здесь заключается в том, чтобы регистрировать в консоли переменную array
, а не переменную tested
:
static reloadAndSortItems() {
let array = [];
const items = Store.getStoredItems();
items.forEach(function (item) {
// getting the stored date --> back to date object
let episodeDate = Date.parse(item.episode);
let parsedEpisode = new Date(episodeDate);
array.push(parsedEpisode);
});
array.sort(function (a, b) {
return a - b
});
console.log('sorted', array);
}
В качестве альтернативы, вы можете клонировать переменную array
с помощью .map()
, а затем вызвать метод .sort()
для этого клонированного массива, например, так:
static reloadAndSortItems() {
let array = [];
const items = Store.getStoredItems();
items.forEach(function (item) {
// getting the stored date --> back to date object
let episodeDate = Date.parse(item.episode);
let parsedEpisode = new Date(episodeDate);
array.push(parsedEpisode);
});
// Copy/clone the array using map into tested variable
const tested = array.map(function(item) { return item; });
// Sort the tested array. Calling sort on tested will leave array unaffected
tested.sort(function (a, b) {
return a - b
});
console.log('sorted', tested); // Sorted
console.log('array', array); // Unsorted
}