@rina_shym

Как освортировать массив согласно правилу, которое дано в задании?

let key_first = [5, 3, 1, 2, 4, 6];
for( let i  = 0; i < key_first.length; i++) { 
     tempKey = key_first[i];
     key_first[i] = key_first[key_first[i] - 1];
     key_first[key_first[i] - 1]  = tempKey;
    
   
}  
//Результат: [ 3, 1, 1, 5, 4, 6 ] . Никак не могу понять почему не верно, мало знаю, прошу помощи. Буду благодарен ! 
 
console.log(key_first);
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
Без условия задачи могу лишь посоветовать обратить внимание на метод сортировки массива

После дополнения от автора:

sortArrayByType(array, type) - функция сортирует массив (аргумент array), чисел в зависимости от значения аргумента type (ltb или btl), от большего к меньшему или же наоборот.

let array = [5, 3, 1, 2, 4, 6];

const TYPES = {
  btl: 0, // от большего к меньшему
  ltb: 1 // от меньшего к большему
}

const sortArrayByType = (array, type) => {
  return array.sort((a, b) => {
    if (a > b) {
      return (type === TYPES.ltb ? 1 : -1)
    } 
    if (b > a) {
      return (type === TYPES.ltb ? -1 : 1)
    }

    if (a < b) {
      return 0
    }
  })
}

sortArrayByType(array, TYPES.ltb)


Результат:
[ 1, 2, 3, 4, 5, 6 ]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы