A
A
Alexander Frontend - Developer2021-06-15 20:40:15
JavaScript
Alexander Frontend - Developer, 2021-06-15 20:40:15

How to remove duplicates from an array?

There is an array: . How to make it so that all elements that have their own duplicate are deleted and the output is a new array with elements that do not have a duplicate? let arr = [ 1, 2, 4, 1, 4, 6, 2, 5 ];

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vadim Filimonov, 2021-07-30
@barbarossa_356

const array = [1, 2, 4, 1, 4, 6, 2, 5];

function method1(coll) {
  // так работает Set
  // https://learn.javascript.ru/map-set#set
  return [...new Set(coll)];
}

function method2(coll) {
  return coll.filter((currentItem, index) => {
    // indexOf находит первый попавшийся элемент и возвращает его индекс
    // когда цикл дойдет до 4-го элемента (единицы), то index будет равен 3-м, а indexOf найден единицу на 0-м элементе
    // результат сравнения будет false и элемент в результат не войдет
    return index === coll.indexOf(currentItem);
  });
}

function method3(coll) {
  // из массива создадим объект, т.к. в объекте не может быть двух одинаковых ключей
  const mapping = coll.reduce((accumulator, currentItem) => {
    // даже если значение уже есть - оно перезапишется
    accumulator[currentItem] = currentItem;
    return accumulator;
  }, {});
  // из полученного объекта создаем массив значений
  return Object.values(mapping);
}

console.log(method1(array)); // [1, 2, 4, 6, 5]
console.log(method2(array)); // [1, 2, 4, 6, 5]
console.log(method3(array)); // [1, 2, 4, 6, 5]

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question