На сайте с уроками попалась задача, нужно создать функцию, которая отсортирует элементы массива, оставив только уникальные:
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 функций сделать алгоритм эффективнее?