Odwrócone tablice w JS

0

Chciałbym napisać funkcje która by mi sortowała tablice sortująco lub malejąco. Robię takie zadanie https://www.codewars.com/kata/5f70c883e10f9e0001c89673/train/javascript lecz jakbym nie zrobił to nie działa

4
const flip = (d, arr) => {
	const f = d == 'R'? 1 : - 1; 
	return arr.slice().sort((a,b) => (a - b) * f);
}

slice() żeby skopiować tablicę, sort() sortuje tablicę przyjmując daną funkcję porównującą. Jeśli użytkownik podał coś innego niż 'R', to wynik będzie mnożony przez -1, czyli kierunek sortowania się zmieni.

3

JS'owy array ma metodę reverse() więc wystarczy umieć sortować w jednym kierunku: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse.
Inna sprawa że domyślne array.sort() działa na napisach więc jak sortujemy liczby to mogą wyjść takie kwiatki:

[1, 10, 9, 99].sort()
(4) [1, 10, 9, 99]

Dlatego trzeba niestety przekazać własną funkcję porównującą:

function flip(direction, array) {
    array.sort((a,b) => a - b);
    if (direction == 'R') {
        array.reverse();
    }
    return array;
}

Ta funkcja modyfikuję przekazaną do niej tablicę.

0

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1