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
в коде, но я не знаю, как еще удалить дубликаты.