Метод .sort не работает, есть подсказки, почему это так? - PullRequest
2 голосов
/ 25 марта 2020
const sortYears = function (arr){
    arr.sort(function(a, b){return b - a})
    }



 const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922]

 console.log(sortYears(years))

Вывод: не определено. Результат, который я ожидал: [2018, 2011, 1999, 1982, 1970, 1963, 1951, 1922] Спасибо миллион за любую помощь здесь

Ответы [ 3 ]

2 голосов
/ 25 марта 2020

Вам необходимо вернуть значение из функции

Методы

const sortYears = function (arr){
    return arr.sort(function(a, b){return b - a})
}

const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922]
console.log(sortYears(years))

sort() изменяют исходный массив. В приведенном выше фрагменте также изменен массив years.

Если вы не хотите изменять исходный массив, убедитесь, что сначала его клонировали, используя синтаксис распространения.

const sortYears = function (arr){
    return [...arr].sort(function(a, b){return b - a})
}

const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922];
const res= sortYears(years);
console.log(JSON.stringify(res));
console.log(JSON.stringify(years));
0 голосов
/ 25 марта 2020

На самом деле вы ничего не возвращаете из функции sortYears().

const sortYears = function (arr){
    return arr.sort(function(a, b){return b - a})
}

Здесь я использую более короткий синтаксис с использованием функции стрелки.

const sortYears = arr => arr.sort((a,b)=> b-a);

const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922]
console.log(sortYears(years))
0 голосов
/ 25 марта 2020

const sortYears = function (arr){
    arr.sort(function(a, b){return b - a})
      return arr;
    }



 const years = [1970, 1999, 1951, 1982, 1963, 2011, 2018, 1922]

 console.log(sortYears(years))
 

you did not return the sorted array back

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...