Пишу свой велосипед по удалению одинаковых элементов массива. Как бы при выводе в консоль дубли не попадаются т.е выводится всё как нужно (1, 11, 2, 4, 5, 3). Но при этом в результирующий массив res ничего не попадает. Помогите исправить
var res = [];
var a = [1, 1, 11, 2, 4, 2, 5, 3, 1];
var N = a.length;
for (i = 0; i < N; i++) {
f = 1;
for (j = 0; j < N; j++)
if (a[i] == a[j] && i != j) {
f = 0;
break;
}
if (f == 1){
console.log(a[i]); //в консоле(1,11,2,4,5,3)
res.push(a[i]) // в итоговом массиве 1,1,11,2,4,2,5,3,1 -----что не верно
}
}
}
Ответ
Честно говоря не хочу смотреть ваш велосипед. Да он и в консоль выводит дубли. Не знаю как вы проверяли.
Но, кмк, проще сделать так:
var arr = [1, 1, 11, 2, 4, 2, 5, 3, 1];
var set = new Set(arr);
arr = Array.from(set);
console.log(arr);
Объекты Set позволяют сохранять уникальные значения любого типа, как примитивы, так и другие типы объектов. (вроде браузеры поддерживают)
Array.from() создаёт новый экземпляр Array из массивоподобного или итерируемого объекта.