@Vetka_in_code

Как найти уникальное значение в массиве?

Решаю задачу с codewars: Есть массив с некоторыми числами. Все числа равны, кроме одного. Найдите его.

Написал код:

function findUniq(arr){
  for(var i = 0; i < arr.length; i++)
  {
    if(arr[i] !== arr[i+1]){
      return (arr[i+1]);
    }
  }
}

Ошибка такая, если findUniq([3,2,2,2]), то выводит 2, а не 3, помогите исправить (поправьте это решение, если можно).
  • Вопрос задан
  • 926 просмотров
Решения вопроса 2
@Konf
Редактирую ответы на 2 + 2 по 4 раза
function findUniq(arr) {
  arr = arr.sort();
  
  if (arr[1] === arr[0]) {
    return arr[arr.length - 1];
  }
  return arr[0];
}
Ответ написан
Комментировать
Hocopor
@Hocopor
Ищу интересную работу
Нужно еще несколько условий.
let current = arr[i];
let next = arr[i+1] || arr[i-2]; // if i == arr.length;
let prev = arr[i-1] || arr[i+2]; // if i == 0;

if(current !== next && current !== prev){
      return current;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
let arr = [ 3,3,3,3,2 ]
let main_digit = ( arr.reduce( (a,b) => a + b, 0 ) / arr.length ).toFixed(0)
let excess_digit = ( arr.filter( ( item, index ) => item != main_digit ))[0]
console.log( excess_digit )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы