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

How do I get Javascript to be not case sensitive when it comes to if statements?

本文关键字:何使 Javascript 不区 大小写 if 语句      更新时间:2024-04-12

我完全理解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]);
}
}
}

如果你需要的话,这是我的整个剧本。

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>

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

您可以在两个操作数上使用Javascript.toUpperCase()方法:

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

或者,您可以对两个操作数使用.toLowerCase()方法:

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

所有内容(搜索和数据)都用小写或大写。您已经尝试过对name执行此操作,但没有对contacts[i].name执行此操作(它们被命名为"Sam"answers"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]);
        }
    }
}