Remove Duplicates

Някаква идея защо : test case Your output (clipped)

NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,

let arr = gets().split(’,’).map(Number) ;
let uniqueArr=[];
var found = false ;

for ( i = 0 ; i < arr.length ; i++) {
for ( j = 0 ; j < uniqueArr.length ; j++) {
if(arr[i] == uniqueArr[j]){
found = true ;
}
}
if( found == false) {
uniqueArr.push(arr[i]) ;
}
found=false;
}

print(uniqueArr)

Write a program that removes all duplicates from a list of elements.

  • 1,2,2,2,4,7 -> 1,2,4,7 .

Maintain the relative order of the remaining items.

Здравей, входните данни не е казано дали ще бъдат числа т.е. не трябва да парсваш елементите в масива към Number. Когато се опиташ да парснеш нещо което не е число към Number резултата е NaN. За тази задачка можеш да използваш Set защото сетовете пазят уникални стойности без да има нужда да правиш проверки. Ето едно примерно решение със сет https://pastebin.com/r6hbeChR :slight_smile:

1 Like

Не трябва ли да обявиш i и j във фор циклите? би трябвало да ти хвърли грешка, като че ли.
Но съм съгласен, че не е нужно да мапваш. Друга препоръка, която дори някои едитори дават е ползването на === вместо ==, което проверява дали и самия тип променлива е същия.

Защо не използваш вградената функция Stream.distinct() ? Ще изтрие всички дупликиращи елементи.