Някаква идея защо : 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.
Maintain the relative order of the remaining items.
Здравей, входните данни не е казано дали ще бъдат числа т.е. не трябва да парсваш елементите в масива към Number. Когато се опиташ да парснеш нещо което не е число към Number резултата е NaN. За тази задачка можеш да използваш Set защото сетовете пазят уникални стойности без да има нужда да правиш проверки. Ето едно примерно решение със сет https://pastebin.com/r6hbeChR
1 Like
Не трябва ли да обявиш i и j във фор циклите? би трябвало да ти хвърли грешка, като че ли.
Но съм съгласен, че не е нужно да мапваш. Друга препоръка, която дори някои едитори дават е ползването на === вместо ==, което проверява дали и самия тип променлива е същия.
Защо не използваш вградената функция Stream.distinct() ? Ще изтрие всички дупликиращи елементи.