const duplicateArray = ['a','b','c','a','b','c','q'];
function funcDeleteDuplicate(array) {
for (let i = 0; i <= array.length; i++) {
if (array.indexOf(array[i]) === i) {
array.splice(i,1);
}
}
return array;
}
console.log(funcDeleteDuplicate(duplicateArray));
const duplicateArray = ['a', 'b', 'c', 'a', 'b', 'c', 'q'];
console.log(
Array.from(new Set(duplicateArray))
);
const duplicateArray = ['a', 'b', 'c', 'a', 'b', 'c', 'q'];
console.log(
duplicateArray.reduce(function (carry, item) {
if (!carry.includes(item)) carry.push(item);
return carry;
}, [])
);
const duplicateArray = ['a', 'b', 'c', 'a', 'b', 'c', 'q'];
console.log(
[...duplicateArray.reduce((carry, item) => [...carry].includes(item) ? carry : carry + item, '')]
);
i
уже начинает указывать на следующий,for()
увеличит i
ещё на 1, и получится, что 1 элемент пропустили. Чинится уменьшением i
на 1 сразу после удаления 1 элемента.i
должно быть не меньше-или-равно, а меньше, чем длина массива.indexOf(value)
const duplicateArray = ['a', 'b', 'c', 'a', 'b', 'c', 'q'];
function funcDeleteDuplicate(array) {
for (let i = 0; i < array.length; i++) {
if (array.indexOf(array[i]) !== i) {
array.splice(i, 1);
i--;
}
}
return array;
}
console.log(funcDeleteDuplicate(duplicateArray));
// [ "a", "b", "c", "q" ]
const funcDeleteDuplicate = array => [...new Set(array)];