Usuwanie duplikatów z tablicy JS z wykorzystaniem metody splice

1

Wiem że ten temat już się pojawił ale kod który tam wstawiłem był źle napisany i musiałem go poprawić. Otóż jak się okazuje nowy kod który napisałem posisada pewne ograniczenie. Mianowicie chodzi o te duplikaty w tablicy. Co prawda usuwa ale nie wszystkie. Siedziałem trochę nad tym kodem i udało mi się wyeliminiować problem tylko nie wiem czy moje rozwiązanie nadal jest poprawne.
Oto kod

function excludeDuplictes(numbersArray) {
    for(let i = 0; i < numbersArray.length; i++) {
        // console.log(" Aktualnie porównywany element: " + numbersArray[i]);
        for(let j = 0; j < i; j++) {
            // console.log("Poprzedni element: " + numbersArray[j]);
            if(numbersArray[i] == numbersArray[j]) {
                numbersArray.splice(i, (numbersArray[i - 1]));
                break;
            }
        }
    }    
    return numbersArray;
}

let numbersArray = [1, 2, 3, 4, 2, 2, 1, 3, 5, 6];
console.log("Tablica źródłowa " + "[" + numbersArray.join(", ") + "]");
console.log(excludeDuplictes(numbersArray));
1
const excludeDuplictes = numbersArray => Array.from(new Set(numbersArray));
1

żle działa dla liczb ujemnych.

0
numbersArray.splice(i, (numbersArray[i - 1]));

Pierwszym argumentem splice jest indeks, od którego rozpocząć usuwanie, a drugi argument to liczba elementów do usunięcia. W Twoim kodzie za liczbę elementów do usunięcia podstawiasz numbersArray[i - 1], co wydaje się błędne, np. dla tablicy [10, 10, 9, 8, 7] zwraca [10].

1 użytkowników online, w tym zalogowanych: 0, gości: 1