admin管理员组

文章数量:1355570

I fully understand Javascript is case sensitive, but when it es to if statements Sam does not equal to sam. I created a prompt box calling this function and I would like it to convert sam to Sam or make both True when you type the name into the prompt box.

function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}

Here is my whole script if you need it for better understandings.

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>

I fully understand Javascript is case sensitive, but when it es to if statements Sam does not equal to sam. I created a prompt box calling this function and I would like it to convert sam to Sam or make both True when you type the name into the prompt box.

function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}

Here is my whole script if you need it for better understandings.

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>
Share Improve this question asked Jul 27, 2012 at 19:39 Sam SatanasSam Satanas 792 silver badges10 bronze badges 3
  • Why do you have a dog constructor but don't use it? – Bergi Commented Jul 27, 2012 at 19:46
  • I am still learning about objects, so I am not sure. I just thought it was apart of making objects. – Sam Satanas Commented Jul 27, 2012 at 19:54
  • function printdog(dog) { console.log(dog.name + " " + dog.owner); } – Sam Satanas Commented Jul 27, 2012 at 22:03
Add a ment  | 

3 Answers 3

Reset to default 4

you may do something like .toUpperCase() on both ends before equality parer

You can use the Javascript .toUpperCase() method on both operands:

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

Alternatively, you can use the .toLowerCase() method on both operands:

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

Just lower- or uppercase everything (both search and data). You already tried do do this for name, but not on contacts[i].name (and they're named "Sam" and "Max", so they will never equal a lowercased input string).

Also, you forgot to execute the function - you just got a reference to it.

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

本文标签: How do I get Javascript to be not case sensitive when it comes to if statementsStack Overflow