Показать сообщение отдельно
  #1 (permalink)  
Старый 13.01.2023, 18:40
Аватар для Bonky
Новичок на форуме
Отправить личное сообщение для Bonky Посмотреть профиль Найти все сообщения от Bonky
 
Регистрация: 13.01.2023
Сообщений: 6

Использование in-place функций для массивов
На сайте с уроками попалась задача, нужно создать функцию, которая отсортирует элементы массива, оставив только уникальные:

let strings = ["кришна", "кришна", "харе", "харе",
  "харе", "харе", "кришна", "кришна", ":-O"
];

alert( unique(strings) ); // кришна, харе, :-O


Вот мое решение при помощи in place функций:
function unique(arr) {
    arr.sort();

      for (let i = 0; i < arr.length; ) {
          if (arr[i] === arr[i + 1]) {
              arr.splice(i, 1);
              continue;
          }
          i++;
      }

      return arr;
  }


А вот решение из учебника:
function unique(arr) {
  let result = [];

  for (let str of arr) {
    if (!result.includes(str)) {
      result.push(str);
    }
  }

  return result;
}


Вопрос: какое из решений является более экономным по ресурсам? Помогает ли в моем случае использование in place функций сделать алгоритм эффективнее?
Ответить с цитированием