@Svyat_smirnov
Занимаюсь front-end разработкой

Ошибка в коде JS (задача на codewars)?

Условие задачи:
In this Kata, you will remove the left-most duplicates from a list of integers and return the result.

Моё решение:
function solve(arr){
    let mas = [];
   arr = arr.map((item,index,array) => {
      if(mas.includes(item) == false){
        mas.push(item);
      }
      else{
        array.splice(index,1);
      }
    });
  return arr;
}

Выдаёт ошибку: Expected: [4, 6, 3], instead got: [undefined, undefined, undefined, undefined, undefined, ] . В чём проблема?
  • Вопрос задан
  • 518 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Да без понятия, в чём там у вас проблема. Что за ошибка - об этом вы почему-то предпочли умолчать. Так что, какой вопрос - такой ответ. Вот вам решение рабочее, сравнивайте со своим, думайте:

function solve(arr) {
  const last = arr.reduce((acc, n, i) => (acc[n] = i, acc), {});
  return arr.filter((n, i) => last[n] === i);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В том, что алгоритм, придуманный вами, нерабочий.
solve ([3, 4, 4, 3, 6, 3]);
// Array(6) [ undefined, undefined, undefined, undefined, undefined, <1 empty slot> ]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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