AlexLearne Ответов: 1

Фильтр массива для отображения уникальных значений javascript


У меня есть массив, который выглядит следующим образом:
["A", "A", "A", "A", "B", "B", "B", "C", "C", "D", "A", "A", "B", "B", "B"]

Как я могу отфильтровать его, чтобы одновременно было только одно уникальное значение, например:
['A', 'B', 'C', 'D', 'A', 'B']


Что я уже пробовал:

Я попробовал два разных подхода, но сначала решил использовать цикл for
function uniqueInOrder(arg) {
  var arr = [];
   arg.split('');
  for(var i = 0; i < arg.length; i++){
    if(arg[i] === arg[i+1]) {arr.push(arg[i])}
    
  }
 return arr
}

Но, насколько я понимаю, мне нужно было бы как-то отключить его от нажатия, если он уже нашел дубликат, потому что я получаю этот вывод:
["А", "В", "А", "Б", "В", "С", "А", "Б", "Б"]

Кроме того, я попробовал этот метод:
array.filter(function (value, index, self) { 
    return self.indexOf(value) === index;
})

Но это просто не позволяет дублировать

1 Ответов

Рейтинг:
5

Patrice T

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

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Попробуй

if(arg[i] != arg[i+1]) {arr.push(arg[i])}

это должно быть лучше, даже если есть больше ошибок.


AlexLearne

Большое вам спасибо за ваш ответ, я думаю, что вы уже рассказали мне об использовании отладчика, и я действительно хочу его изучить, но у меня есть несколько вопросов, и я попытался задать их, но, к сожалению, мой комментарий остался незамеченным вами.
Конечно, я могу погуглить их, и я уверен, что найду много ответов, но я хотел бы учиться у кого-то, кто имеет такой же опыт, как вы.
1. Вы лично используете Visual Studio отладчик?
2. Как насчет отладки прямо в консоли? Разве это хуже? Неужели это слишком сложно для такого новичка, как я?
3. Как вы научились отлаживать?
Любые советы будут очень оценены. И еще раз, я очень благодарен вам за помощь!

Patrice T

1) Нет
2) для JS в вашем браузере есть отладчик.
3) практика-это единственный путь. Это не так уж и сложно.

у вас есть 2 ссылки в решении.
Не стесняйтесь гуглить

AlexLearne

Спасибо!