Уникальные элементы

Всем привет! Думаю, многие поломали голову над заданием. Я старался находиться в рамках материалов курса и не использовать функции типа lastIndexOf и проч. Прошу ревью моего кода)

let numbers = [1, 4, 5, 9, 2, 5, 1];
let uniqueNumbers = [];

for (let i = 0; i < numbers.length; i++) //пробегаем массив в "прямом" направлении
{
  
  let haveRepeat = false; //вводим переменную, которая активируется при появлении повтора на каждом "пробеге"
  
  for (let j = numbers.length; j >= 0; j--) //пробегаем массив в "обратном" направлении
  {
    if (i !== j && numbers[i] === numbers[j])
    { 
      haveRepeat = true; //
    }
  }
  
  if (!haveRepeat) {
    uniqueNumbers.push(numbers[i]) //если повторений не было элемент i запишется в массив
  };
  
  //console.log(uniqueNumbers); //отслеживаем наполнение массива
}
2 лайка

Епта, я думал я наворотил, но у тебя вообще дичь))).
Вот мое решение, два часа мучался:

let numbers = [12, 12, 15, 7, 1, 15];

let uniqueNumbers = [];
let swap = [];

for (let i=0; i<=numbers.length-1; i++) {
if (numbers.indexOf(numbers[i], [fromIndex = i+1])<0 && swap.indexOf(numbers[i])<0) { uniqueNumbers.push(numbers[i])
}
else if (numbers.indexOf(numbers[i], [fromIndex = i+1])>=0) {
swap.push(numbers[i])
}
}

let numbers = [1, 1, 1, 6, 8, 8, 2, 410];
let uniqueNumbers = [];

for (let i = 0; i <= numbers.length - 1; i++) {
  let boolVariable = false;
  for (let j = 0; j <= numbers.length - 1; j++) {
    if (i !== j && numbers[i] === numbers[j]) { 
      boolVariable = true;
    }
  }
  
  if (boolVariable === false) {
    uniqueNumbers.push(numbers[i]);
  }
}
1 лайк

У меня целый день ушёл и то погуглил.)))

Главное - результат, код валиден) Я какое то задание с перебором и сортировкой по возрастанию два дня мучал чуть мозг не вытек, но без гугла.

@pitbrest ну-с, у тебя в коде есть хотя б “fromIndex”, чего в теории не было, вроде.
у меня решение “в лоб” без дополнительной информации - берем каждый элемент и сравниваем его со всеми остальными, кроме себя самого.

твое решение покороче, это хорошо)

1 лайк