Ошибка при удалении дубликатов из массива Javascript

UPDATE

Вот сценарий проблемы: https://jsfiddle.net/q9c5fku3/, когда я запускаю этот код и смотрю на консоль, я вижу, что console.ogging различное число в массиве.

Спасибо за ваши ответы, извините, что я получаю downvotes, но это меня действительно сбивает с толку.

Я пробовал это снова, используя разные цифры, мне интересно, можете ли вы, ребята, проверить эти цифры на своем конце и посмотреть, получится ли у вас другой результат?

    var myArray = [621608617992776, 621608617992776, 10156938936550295, 621608617992776, 10156938936550295, 10156938936550295, 621608617992776, 10156938936550295];
    console.log(myArray);

    var myArrayTrimmed = [];

    for(var i in myArray){
        if(myArrayTrimmed.indexOf(myArray[i]) === -1){
            myArrayTrimmed.push(myArray[i]);
        }
    }
    console.log(myArrayTrimmed);

Это дает мне следующий массив в консоли:

[621608617992776, 10156938936550296]

По какой-то причине второе число увеличилось на 1.

====================

Оригинальный вопрос:

У меня есть этот массив:

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];

Я пытаюсь создать новый массив с именем myArrayTrimmed, который будет таким же, как и вышеупомянутый массив, за исключением того, что будет удален дубликат. Это должно привести к:

var myArrayTrimmed = [100, 200];

Это код, который я использую, чтобы добиться этого:

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];
var myArrayTrimmed = [];

for(var i in myArray){
    if(myArrayTrimmed.indexOf(myArray[i]) === -1){
        myArrayTrimmed.push(myArray[i]);
    }
}
console.log(myArrayTrimmed);

Это работает некорректно, в то время как он удаляет дубликаты, по какой-то причине он вычитает число 1 от 200, поэтому вывод в консоли:

[100, 199]

Я думаю, что это должно быть связано с -1 в коде, но я не знаю, как еще удалить дубликаты.

Ответ 1

Я считаю, что это лучший способ сделать это

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200],
    reduced = Object.keys(myArray.reduce((p,c) => (p[c] = true,p),{}));
console.log(reduced);

Ответ 2

Вы можете использовать нижеприведенный код для эффективного удаления повторяющихся элементов -

var myArrayTrimmed = myArray.filter(function(elem, pos) {
return myArray.indexOf(elem) == pos;
});

ваш myArrayTrimmed будет содержать уникальные значения.

Ответ 3

Надеюсь, это будет полезно

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];
var myArrayTrimmed = [];
myArray.forEach(function(item){
 if(myArrayTrimmed.indexOf(item) ==-1){
   myArrayTrimmed.push(item);
}

})
console.log(myArrayTrimmed);

Отметьте jsfiddle