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)];