“一个功能参数如何与javascript中的另一个功能参数连接?”

时间:2019-01-20 10:35:35

标签: javascript function for-loop

我正在用javascript创建此facebook用户登录系统的基本逻辑。逻辑不是我自己的,但我正在从这类代码中学习逻辑。这是我的在线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 :(得分:0)

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"
    }

];

Newsfeed是一个对象数组,用于存储用户名及其时间轴更新。

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);

函数登录也使用参数username和password,并且在if块内调用isuservalid函数,以检查用户是否存在,如果它打印用户新闻提要,则显示错误消息。最后,登录函数被调用,并且之前的提示数据为takem。

答案 1 :(得分:0)

函数isUserValid(username,password)使用用户名和密码,如果用户有效,则返回true或false。功能不错,可以做1件事。

SignIn(user,pass)函数正在记录用户。此函数使用相同的参数调用isUserValid,以检查用户是否正常。

您可以将它们合并在一起,但是有时最好将它们保持在干净的函数中。

我认为您可能对事情的发生顺序有些困惑,而不是您在脚本中看到的顺序。

  1. 登录称为
  2. 从登录内调用
  3. isUserValid
  4. 新闻提要或错误消息

答案 2 :(得分:-1)

好的。从这里开始

df <- structure(list(ID = c("1", "2", "3", "4"), cd1 = c("231", "222", 
"123", "145"), cd2 = c("219", "", "142", "521"), cd3 = c("1321", 
 "", "", "2313"), cd4 = c("2314", "", "", "122")), row.names = c(NA, 
 -4L), class = "data.frame")

这些行将提示用户输入用户名和密码,然后将数据存储到变量中。之后,主要过程从这里开始。

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)) {

,然后检查用户的用户名和密码是否有效,然后相应地返回。它通过将给定的用户名和密码与数据库数组中的每个用户名和密码进行比较来检查有效性。一旦找到,它将返回true,否则将返回false,因为它无效。

然后回到此

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;
}

如果用户名和密码有效,它将调用

if(isUserValid(user,pass)) {

    console.log(newsFeed);

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

仅用于console.log此数组

console.log(newsFeed);

但是,如果用户名和密码无效,它将改为执行该操作

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

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

];