Создайте версию массива без дубликатов. Функция должна обрабатывать итераторы, которые работают с отсортированным массивом. Итак, я могу сделать первую часть, но не понимаю, как я бы подошел к использованию isSorted или итератора.
_.uniq = function(array, isSorted, iterator) {
var unique = [];
for (var i = 0; i < array.length; i++) {
var ele = array[i];
if (unique.indexOf(ele) === -1) {
unique.push(ele);
}
}
return unique;
};
Что вы имеете в виду под «итераторами, работающими с отсортированным массивом»?
что такое isSorted и итератор?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это простой и элегантный способ, если вы хотите создать новый массив без сортировки и игнорировать IE11.
let fruits = ['pear','apple','banana','orange','apple','mango','banana','pear'];
//https://www.codementor.io/tips/8243973127/how-to-remove-duplicates-within-a-javascript-array-using-es6-in-just-one-line
//Array.from & new Set not supported in IE11, MDN has details.
let fruits_without_duplicates = Array.from(new Set(fruits));
console.info(fruits_without_duplicates); //["apple", "banana", "orange", "mango"]
Вы можете создать JavaScript Набор из массива, а затем получить массив из набора. Набор содержит уникальные значения.
let fruits = ['pear','apple','banana','orange','apple','mango','banana','pear'];
let uniq_fruits = [... new Set(fruits)];
console.info(uniq_fruits); //[ 'pear', 'apple', 'banana', 'orange', 'mango' ]
Если массив отсортирован, вам просто нужно сравнить каждый элемент с предыдущим элементом, а не искать его в массиве результатов.