Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Код не проходит проверку кодварс на поиск уникального числа в массиве js

половину тестов проходит,половину нет, неп проходит тест если уникальное число типа float и бесконечность+-.Почему?

12345678
 function findUniq(arr) { 
  arr = parseInt( 
    arr.filter((el, i, arr) => arr.indexOf(el) === arr.lastIndexOf(el)) 
  ); 
  return arr; 
} 
 
 

На входе массив, цифр где все элементы одинаковы, и один уникальный.

По дате
По рейтингу
Аватар пользователя
Новичок

наверное из-за учета типа, такое выдаст 1, хотя должно 2:

1
 findUniq([1,1,'1',2,3,3,4,4]) 


там же должен быть чеклист проверок и на каждом пунке должна быть отметка пройдено или нет, мы не можем угадать какие у тебя там проверки, ты ничего не скинул нам.

хоть '1' и строка, но все еще является числом.
пробуй поставить плюсик к каждому из el в условии (для принудительного приведения к типу number):

1
 arr.indexOf(+el) === arr.lastIndexOf(+el) 

с таким вариантом уже выдает 2

Аватар пользователя
Высший разум
123456789101112131415161718192021
 const uniqueValue = (arr) => { 
    const count = (seq, value) => { 
        let n = 0; 
        for (let item of seq) { 
            if (value === item) { 
                ++n; 
            } 
        } 
        return n; 
    }; 
    let box = arr.flat(Infinity); 
    for (let item of box) { 
        if (count(box, item) == 1) { 
            return item; 
        } 
    } 
    return false; 
}; 
let arr = [1, 4, 1, Infinity, 3, 1, 3, 4, 3, 4]; 
let res = uniqueValue(arr); 
if (res) console.log(res);