Jukk
@Jukk

Как удалить из массива повторяющиеся значения?

Нужна кастомная функция unique() у объекта Array.

let arr = [1,2,3,5,5,3,3]

Должно быть что-то типа arr.unique();.

Сделал через Object.defineProperty и через return возвращаю новый массив уникальных значений.

А можно ли сделать, чтобы в arr сразу появились уникальные значения?

Т.е. без присваивания того, что вернет return.

Сейчас приходится писать arr = arr.unique();.
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Array.prototype.unique = function(createNewArr) {
  const arr = createNewArr ? [] : this;
  arr.splice(0, arr.length, ...new Set(this));
  return arr;
};


const arr1 = [ 1, 1, 1 ];
console.log(arr1.unique()); // [1]
console.log(arr1); // [1]

const arr2 = [ 2, 2, 2 ];
console.log(arr2.unique(true)); // [2]
console.log(arr2); // [2, 2, 2]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы