ЙажаСценарий / Говнокод #27672 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
let users = [
  user_1 = {
    user_name: 'Первый',
    user_login: 'l1',
    user_password: 'p1'
  },
  user_2 = {
    user_name: 'Второй',
    user_login: 'l2',
    user_password: 'p2'
  },
  user_3 = {
    user_name: 'Третий',
    user_login: 'l3',
    user_password: 'p3'
  }
]

function authorisation(guest_login, guest_password) {
  for (let key in users) {
    if(guest_login == users[key].user_login && guest_password == users[key].user_password) {
      return alert('Хай ' + users[key].user_name);
    } else {
      alert('Чёт не то'); continue;
    }
  }
}

authorisation(prompt('Введите логин'), prompt('введите пароль'))

Вот казалось бы, ну чего тут сложного? А чёт сложно. Всего-то и нужно - пробегаться по массиву объектов, сверять логины и пароли и либо здороваться с пользователем, либо выдавать сообщение об ошибке. Находить пользователя у меня получается, проблема в том, что если он не первый по счёту, то сообщение об ошибке выпадает на каждого предыдущего. Ну и если крутить вертеть последовательность, то просто на каждого с кем данные не совпадают. Как бы мне этого избежать?

Запостил: shuric shuric, (Updated )

Комментарии (27) RSS

  • Вынуть алерт из else и убрать ветку else вообще.
    Ответить
    • Я пытался! Но видимо что-то говняю в синтаксисе и просто ломаю бедное устройство -_-
      Ответить
    • ну или вот так, не ломается, но ничего и не даёт, проблема остаётся

      function authorisation(guest_login, guest_password) {
      for (let key in users) {
      if(guest_login == users[key].user_login && guest_password == users[key].user_password) {
      return alert('Хай ' + users[key].user_name);
      }
      alert('Чёт не то'); continue;
      }
      }

      authorisation(prompt('Введите логин'), prompt('введите пароль'))
      Ответить
      • Алерт нужно ниже ставить: после цикла, но перед последней фигурной скобкой.
        Ответить
          • В таких ситуациях лучше рисовать блок-схемы, чтобы понять, какой фрагмент кода за каким выполняется.

            Можно ещё трассировать программу в отладчике или в уме: выполнять по шагам, чтобы понять, какой шаг как изменяет переменные или к какому блоку вызывает переход.
            Ответить
            • Не, я примерно понимаю, саму логику событий, + всё пропускаю через отладчик в дев тулс. Но частенько путаюсь в правилах. Как и что и с чем можно/нельзя/не стоит ставить. Где нужно вернуть значение, где вывести инфу и тд. Так то я конечно логику событий прописываю себе. Не говорю, что правильно это делаю, но и бездумно стараюсь не фигачить )))
              Ответить
  • > javascript
    > users[i].password == password

    Я искренне надеюсь, что это не с клиентской стороны...

    > prompt

    Надежда умерла.
    Ответить
  • Я больше никогда не буду пользоваться сайтами с jawasцript...
    Ответить
    • Ну ну, по одному говнокоду весьма неумного говнокодера судить о всём языке не стоит. Это же я дурачок, а не JS )))
      Ответить
        • Единственное общее JavaScript с Jawa, которое я вижу:
          - В Jawa долбоёбы из принципа не хотят добавлять полезные фичи, поэтому люди изобретают ебучий Cotlin.
          - В JavaScript добавляют, но люди всё равно вынуждены использовать ебучие бабеля или тупоскрипты, чтобы на всех браузерах работало.
          Ответить
          • > Jawa
            > Cotlin

            Я ещё знаю языки программирования «SI» и «Paskal». По крайней мере, такие названия были на обложке диска с компиляторами, который я видел на радиорынке.
            Ответить
  • const p = prompt();
    if (p !==  "Aasd234123") {
      alert('Пароль неверен');
      return;
    }
    Ответить
    • const p = prompt('Введите пароль (Aasd234123)');
      if (p !==  'Aasd234123') {
        alert('Пароль Aasd234123 введён некорректно!');
        return;
      }
      Ответить
      • --Придумайте пароль
        --Abc123
        --Такой пароль уже используется аккаунтом ISO. Придумайте другой пароль
        Ответить
  • Поэтому я за PHP. В нём невозможно выдать список логинов и паролей клиенту.
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8