当涉及if语句时,如何使Javascript不区分大小写?

当涉及if语句时,如何使Javascript不区分大小写?,javascript,Javascript,我完全理解Javascript是区分大小写的,但是当谈到if语句时,Sam不等于Sam。我创建了一个调用此函数的提示框,我希望它将Sam转换为Sam,或者在提示框中键入名称时将两者都设置为True function search(name) { var ourContacts = contacts.length; for (var i = 0; i < ourContacts; i++) { if (contacts[i].name === name) { printdog(contact

我完全理解Javascript是区分大小写的,但是当谈到if语句时,Sam不等于Sam。我创建了一个调用此函数的提示框,我希望它将Sam转换为Sam,或者在提示框中键入名称时将两者都设置为True

function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}
函数搜索(名称){
var ourContacts=contacts.length;
对于(变量i=0;i
如果你需要更好的理解,这是我的整个剧本

function dog(name, breed, age, color, weight, owner, owneraddress) {
    this.name = name;
    this.breed = breed;
    this.age = age;
    this.color = color;
    this.weight = weight;
    this.owner = owner;
    this.owneraddress = owneraddress;
}
//My Dogs
var sam = {
    name: "Sam",
    breed: "Chihuahua",
    age: 7,
    color: "White",
    weight: "7 lb",
    owner: "Bourton",
    owneraddress: "44 Berkley Drive"
};
var max = {
    name: "Max",
    breed: "Chihuahua",
    age: 4,
    color: "Brown",
    weight: "5 lb",
    owner: "Smith",
    owneraddress: "134 Door Ave"
};

//My array of dogs
var contacts = [sam, max];

function printdog(dog) {
    console.log(dog.name + " " + dog.owner);
}
function list() {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
printdog(contacts[i]);
}
}
list();
function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
name = name.toLowerCase;
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}

<button onclick="search(prompt('Search Dogs Name'))">Search for Dog</button>
功能犬(名称、品种、年龄、颜色、体重、所有者、所有者地址){
this.name=名称;
这个品种;
这个。年龄=年龄;
这个颜色=颜色;
重量=重量;
this.owner=所有者;
this.owneraddress=owneraddress;
}
//我的狗
变量sam={
姓名:“山姆”,
品种:“吉娃娃”,
年龄:7岁,
颜色:“白色”,
重量:“7磅”,
所有者:“波顿”,
所有者地址:“伯克利大道44号”
};
var max={
姓名:“Max”,
品种:“吉娃娃”,
年龄:4岁,
颜色:“棕色”,
重量:“5磅”,
主人:“史密斯”,
业主地址:“门大街134号”
};
//我的狗群
var触点=[sam,最大];
函数printdog(dog){
console.log(dog.name+“”+dog.owner);
}
函数列表(){
var ourContacts=contacts.length;
对于(变量i=0;i
您可以在相等比较器之前的两端执行类似于
.toUpperCase()
的操作

您可以在相等比较器之前的两端执行类似于
.toUpperCase()
的操作

仅执行或执行所有操作(搜索和数据)。您已尝试对
name
执行此操作,但未在
联系人[i].name
上执行此操作(它们的名称分别为“Sam”和“Max”,因此它们永远不会等于小写输入字符串)

另外,您忘了执行函数-您刚刚得到了对它的引用

function search(name) {
    var ourContacts = contacts.length;
    name = name.toLowerCase();
//                         ^^
    for (var i = 0; i < ourContacts; i++) {
        if (contacts[i].name.toLowerCase() === name) {
//                          ^^^^^^^^^^^^^^
            printdog(contacts[i]);
        }
    }
}
函数搜索(名称){
var ourContacts=contacts.length;
name=name.toLowerCase();
//                         ^^
对于(变量i=0;i
只需或所有内容(搜索和数据)。您已尝试对
name
执行此操作,但未在
联系人[i].name
上执行此操作(它们的名称分别为“Sam”和“Max”,因此它们永远不会等于小写输入字符串)

另外,您忘了执行函数-您刚刚得到了对它的引用

function search(name) {
    var ourContacts = contacts.length;
    name = name.toLowerCase();
//                         ^^
    for (var i = 0; i < ourContacts; i++) {
        if (contacts[i].name.toLowerCase() === name) {
//                          ^^^^^^^^^^^^^^
            printdog(contacts[i]);
        }
    }
}
函数搜索(名称){
var ourContacts=contacts.length;
name=name.toLowerCase();
//                         ^^
对于(变量i=0;i
您可以在两个操作数上使用Javascript方法:

if (contacts[i].name.toUpperCase() === name.toUpperCase())
if (contacts[i].name.toLowerCase() === name.toLowerCase())
或者,可以在两个操作数上使用该方法:

if (contacts[i].name.toUpperCase() === name.toUpperCase())
if (contacts[i].name.toLowerCase() === name.toLowerCase())

可以在两个操作数上使用Javascript方法:

if (contacts[i].name.toUpperCase() === name.toUpperCase())
if (contacts[i].name.toLowerCase() === name.toLowerCase())
或者,可以在两个操作数上使用该方法:

if (contacts[i].name.toUpperCase() === name.toUpperCase())
if (contacts[i].name.toLowerCase() === name.toLowerCase())

为什么你有一个
dog
构造函数却不使用它?我还在学习对象,所以我不确定。我只是认为它是制作objects.function printdog(dog){console.log(dog.name+“”+dog.owner);}的一部分。为什么你有一个
dog
构造函数却不使用它?我还在学习对象,所以我不确定。我只是觉得这是制作objects.function printdog(dog){console.log(dog.name+“”+dog.owner);}谢谢,效果很好。我不知道你可以这么做,我以为你只能使用一个联系人[I]。请说出两个。这在将来肯定会很有用。您不应该每次都在搜索参数上应用此功能。谢谢,这很有效。我不知道你可以这么做,我以为你只能使用一个联系人[I]。请说出两个。这在将来肯定会很有用。您不应该每次都对搜索参数应用此函数