Отфильтровать без изменения создания нового массива

Подскажите пожалуйста каким образом можно отфильтровать массив без возвращения нового массива. При использования filter или new Set возращается новый массив. Мне же необходимо, чтобы вернулся исходный массив, но с уже отфильтрованными значениями. Необходимо отфильтровать i!=={id: 1, name: "Sasha"}

let arr = [{id: 1, name: "Sasha"}, {id: 2, name: "Ivan"}, {id: 1, name: "Sasha"}, {id: 6, name: "Ivan"}]

В результате должен вернуться отфильтрованный массив arr. Спасибо!


Ответы (1 шт):

Автор решения: Igor

let arr = [
  {id: 1, name: "Sasha"}, 
  {id: 2, name: "Ivan"}, 
  {id: 1, name: "Sasha"}, 
  {id: 6, name: "Ivan"}
];

let ids = new Set();
for (let i = 0; i < arr.length; i++) {
  ids.has(arr[i].id)? arr.splice(i--, 1) : ids.add(arr[i].id);
}
console.log(arr);

→ Ссылка