Создать версию массива без дубликатов

Создайте версию массива без дубликатов. Функция должна обрабатывать итераторы, которые работают с отсортированным массивом. Итак, я могу сделать первую часть, но не понимаю, как я бы подошел к использованию 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;
};

Если массив отсортирован, вам просто нужно сравнить каждый элемент с предыдущим элементом, а не искать его в массиве результатов.

Barmar 20.05.2018 07:23

Что вы имеете в виду под «итераторами, работающими с отсортированным массивом»?

Barmar 20.05.2018 07:25

что такое isSorted и итератор?

Jay 06.06.2018 20:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
882
2

Ответы 2

Это простой и элегантный способ, если вы хотите создать новый массив без сортировки и игнорировать 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' ]

Другие вопросы по теме