一个Javascript函数,可以告诉我两个人';的名字、姓氏和电子邮件是否相同
我想创建一个Javascript函数,它可以接受任意两个人的对象,如果它们完全相同(例如,如果firstName、lastName和email值都匹配),则返回true;如果它们不相同,则返回false。这就是我到目前为止所得到的,但我还没有任何逻辑,因为我不确定是否会用if-else语句或其他语句来完成一个Javascript函数,可以告诉我两个人';的名字、姓氏和电子邮件是否相同,javascript,jquery,html,Javascript,Jquery,Html,我想创建一个Javascript函数,它可以接受任意两个人的对象,如果它们完全相同(例如,如果firstName、lastName和email值都匹配),则返回true;如果它们不相同,则返回false。这就是我到目前为止所得到的,但我还没有任何逻辑,因为我不确定是否会用if-else语句或其他语句来完成 <!DOCTYPE html> <html> <head> <title>Question 6</title> &
<!DOCTYPE html>
<html>
<head>
<title>Question 6</title>
<script type="text/javascript" src="js/libs/jquery/jquery.js"></script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
var person1 = {
firstName: "Mike",
lastName: "Smith",
email: "msmith@yahoo.com"
};
var person2 = {
firstName: "John",
lastName: "Smith",
email: "jsmith@yahoo.com"
};
$(document).ready (function comparePersons(person1, person2) {
if (person1.firstName !== person2.firstName)
return false;
if (person1.lastName !== person2.lastName)
return false;
if (person1.email !== person2.email)
return false;
else
return true;
});
$("#output").html(value);
if (return true)
string "True";
else (return false)
string "False";
</script>
</head>
<body>
<div id="output">
</div>
</body>
</html>
问题6
变量person1={
名字:“迈克”,
姓:“史密斯”,
电子邮件:“msmith@yahoo.com"
};
变量person2={
名字:“约翰”,
姓:“史密斯”,
电子邮件:“jsmith@yahoo.com"
};
$(文档).ready(功能比较人员(人员1、人员2){
if(person1.firstName!==person2.firstName)
返回false;
if(person1.lastName!==person2.lastName)
返回false;
如果(person1.email!==person2.email)
返回false;
其他的
返回true;
});
$(“#输出”).html(值);
if(返回true)
字符串“True”;
else(返回false)
字符串“False”;
编辑:用一种更简短的方式(特别是如果您想比较更多内容),我们只需设置一个包含所有要比较的属性的数组,并循环使用它们:
function areTheyTheSame(p1, p2) {
var criterias = ['email', 'firstName', 'lastName'];
for (var i=0; i<criterias.length; i++) {
if (p1[criterias[i]] !== p2[criterias[i]])
return false;
}
return true;
}
console.log(areTheyTheSame(person1, person2));
其目的是在函数中尽早返回。一旦我们知道他们不是同一个人(电子邮件可能是最容易知道的方式),我们就可以从该功能返回。编辑:在较短的方式中(特别是如果您想比较更多内容),我们只需设置一个包含所有要比较的属性的数组,并循环它们:
function areTheyTheSame(p1, p2) {
var criterias = ['email', 'firstName', 'lastName'];
for (var i=0; i<criterias.length; i++) {
if (p1[criterias[i]] !== p2[criterias[i]])
return false;
}
return true;
}
console.log(areTheyTheSame(person1, person2));
其目的是在函数中尽早返回。一旦我们知道他们不是同一个人(电子邮件可能是最容易知道的方式),我们就可以从该功能返回。编辑:在较短的方式中(特别是如果您想比较更多内容),我们只需设置一个包含所有要比较的属性的数组,并循环它们:
function areTheyTheSame(p1, p2) {
var criterias = ['email', 'firstName', 'lastName'];
for (var i=0; i<criterias.length; i++) {
if (p1[criterias[i]] !== p2[criterias[i]])
return false;
}
return true;
}
console.log(areTheyTheSame(person1, person2));
其目的是在函数中尽早返回。一旦我们知道他们不是同一个人(电子邮件可能是最容易知道的方式),我们就可以从该功能返回。编辑:在较短的方式中(特别是如果您想比较更多内容),我们只需设置一个包含所有要比较的属性的数组,并循环它们:
function areTheyTheSame(p1, p2) {
var criterias = ['email', 'firstName', 'lastName'];
for (var i=0; i<criterias.length; i++) {
if (p1[criterias[i]] !== p2[criterias[i]])
return false;
}
return true;
}
console.log(areTheyTheSame(person1, person2));
其目的是在函数中尽早返回。一旦我们知道他们不是同一个人(电子邮件可能是最容易知道的方式),我们就可以从功能返回
person2
与您在函数中定义的person1
的本地版本进行比较return
语句。第一个命令会导致函数停止,因此您试图显示到#output
的行甚至不会被击中return
放入html()
函数中。它需要是HTML或字符串if
语句中
if (person1.email === person2.email && person1.lastName === person2.lastName && person1.firstName === person2.firstName) {
//Success!
}
else {
//Fail!
}
这将失败并在任何一个先失败的条件下返回,所以如果您以降低匹配概率的方式对它们进行排序,您将很快发现是否存在匹配。但是,这是一个相当长且复杂的条件语句。把它们拆散会更干净、更容易管理
或者,特别是如果您希望在将来添加或比较更多属性。。。请参阅Cohars的答案,了解我将要编写的另一种方法,但现在不必:)
person2
与您在函数中定义的person1
的本地版本进行比较return
语句。第一个命令会导致函数停止,因此您试图显示到#output
的行甚至不会被击中return
放入html()
函数中。它需要是HTML或字符串if
语句中
if (person1.email === person2.email && person1.lastName === person2.lastName && person1.firstName === person2.firstName) {
//Success!
}
else {
//Fail!
}
这将失败并在任何一个先失败的条件下返回,所以如果您以降低匹配概率的方式对它们进行排序,您将很快发现是否存在匹配。但是,这是一个相当长且复杂的条件语句。把它们拆散会更干净、更容易管理
或者,特别是如果您希望在将来添加或比较更多属性。。。我本来打算写的另一种方法见Cohars的答案,但现在