"Как параметры одной функции связаны с параметрами другой функции в JavaScript?" - PullRequest
0 голосов
/ 20 января 2019

Я создавал базовую логику системы входа в систему на Facebook в javascript. Логика не моя, но я изучаю логику из этих кодов. по логике моего онлайн-преподавателя javascript, я получил почти 90% представление об этом коде.

var database = [{
    username: "Robin",
    password: "abc"
  },

  {
    username: "Alex",
    password: "123"
  },

  {
    username: "John",
    password: "2222"
  }

];

var newsFeed = [{
    username: "Ron",
    timeline: "Well, I like facebook"
  },

  {
    username: "Alex",
    timeline: "Hello my friends"
  }

];

usernamePrompt = prompt("What is your username?");
passwordPromt = prompt("Enter your password now");

function isUserValid(username, password) {

  for (var i = 0; i < database.length; i++) {
    if (database[i].username === username &&
      database[i].password === password) {
      return true;
    }
  }

  return false;
}

// prompt input is firstly taken in this SignIn fuction.
//but it seems like isUserValid firstly takes input from popmt.
//I am so confused with the connection between these functions.
function SignIn(user, pass) {

  if (isUserValid(user, pass)) {
    console.log(newsFeed);
  } else {
    alert("Wrong password, Please try again later");
  }

}

SignIn(usernamePrompt, passwordPromt);

Код работает на 100% правильно. Проблема в том, что логика не так ясна для понимания.

Ответы [ 3 ]

0 голосов
/ 20 января 2019
var database = [
    {
        username: "Robin",
        password: "abc"
    },

    {
        username: "Alex",
        password: "123"
    },

    {
        username: "John",
        password: "2222"
    }

];
database is an array JSON object, which stores usernames and pssswords.

var newsFeed = [
    {
        username: "Ron",
        timeline: "Well, I like facebook"
    },

    {
        username: "Alex",
        timeline: "Hello my friends"
    }

];

Лента новостей - это массив объектов, в котором хранятся имена пользователей и их обновление по времени.

usernamePrompt = prompt("What is your username?");
passwordPromt = prompt("Enter your password now");

- это предупреждение с полем ввода, данные, введенные в это поле, назначаются соответствующемуПеременные.

function isUserValid(username,password){
        for(var i=0; i < database.length; i++){

        if(database[i].username === username &&
            database[i].password === password) {
            return true;
        }

    }   return false;
}

isUserValid - это функция, которая принимает аргументы имя пользователя и пароль, выполняет цикл для длины массива базы данных и проверяет для каждого объекта, существуют ли введенные имя пользователя и пароль в базе данных или нет.Если это так, он возвращает true, иначе возвращает false.

function SignIn(user, pass) {

    if(isUserValid(user,pass)) {

        console.log(newsFeed);

    } else {
        alert("Wrong password, Please try again later");
    }

}

SignIn(usernamePrompt,passwordPromt);

Функция signin также принимает аргументы username и password, и функция isuservalid вызывается внутри блока if, чтобы проверить, существует ли пользователь, если он это делаетпечатает, что новостная лента пользователей еще выдает сообщение об ошибке.В конце функция входа в систему вызывается с ранее полученными данными Promps.

0 голосов
/ 20 января 2019

Функция isUserValid (имя пользователя, пароль) принимает имя пользователя и пароль и возвращает true или false, если пользователь действителен. Хорошая функция, делает 1 вещь.

Функция SignIn (пользователь, пароль) регистрирует пользователя. Эта функция вызывает isUserValid с теми же аргументами, чтобы проверить, в порядке ли пользователь.

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

Я думаю, вы можете быть немного озадачены порядком того, как все происходит, это не тот порядок, который вы видите в своем сценарии.

  1. Вход называется
  2. isUserValid вызывается изнутри SignIn
  3. Лента новостей или сообщение об ошибке
0 голосов
/ 20 января 2019

Хорошо. Здесь начинается

usernamePrompt = prompt("What is your username?");
passwordPromt = prompt("Enter your password now");

Эти строки предложат пользователю ввести имя пользователя и пароль, а затем сохранят данные в переменных. После этого начинается основной процесс.

SignIn(usernamePrompt,passwordPromt);

Это вызовет функцию, а также передаст имя пользователя и пароль. Эти две переменные будут входными параметрами для следующей функции, которая будет использоваться в ближайшее время.

function SignIn(user, pass) {

    if(isUserValid(user,pass)) {

        console.log(newsFeed);

    } else {
        alert("Wrong password, Please try again later");
    }

}

В этой функции сначала будет вызываться

if(isUserValid(user,pass)) {

Так что входит в эту функцию

function isUserValid(username,password){
        for(var i=0; i < database.length; i++){

        if(database[i].username === username &&
            database[i].password === password) {
            return true;
        }

    }   return false;
}

и проверьте правильность имени пользователя и пароля от пользователя и верните соответствующим образом. Он проверяет правильность, сравнивая заданные имя пользователя и пароль с каждым именем пользователя и паролем в массиве базы данных. Он вернет true, как только будет найден, в противном случае он вернет false, потому что он недействителен.

Тогда вернемся к этому

if(isUserValid(user,pass)) {

    console.log(newsFeed);

} else {
        alert("Wrong password, Please try again later");
}

Если имя пользователя и пароль от пользователя действительны, то он будет вызывать

console.log(newsFeed);

, который предназначен только для console.log этого массива

var newsFeed = [
    {
        username: "Ron",
        timeline: "Well, I like facebook"
    },

    {
        username: "Alex",
        timeline: "Hello my friends"
    }

];

Но если имя пользователя и пароль неверны, он выполнит это вместо

alert("Wrong password, Please try again later");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...