-4
<script> 

<!-- A program to search for a friend from an object --> 

var friends = { 
    bill: { 
     firstName: "Bill", 
     lastName: "Gates", 
     number: "205-555-1111", 
     address:["One Microsoft Day","Redmond","WA","90852"] 
    }, 

    steve: { 
     firstName: "Steve", 
     lastName: "Jobs", 
     number: "408-555-2222", 
     address: ["One Infinite Loop", "Cupertino", "CA", "95014"] 
    }, 

    wendy: { 
     firstName: "Wendy", 
     lastName: "Johnson", 
     number: "510-555-3333", 
     address: ["3555 Anyplace drive","New York", "NY","11001"] 
    } 

} 

    alert(friends["steve"].lastName); 

    alert(friends.length); 

    var search = function(name) 
     { 
      document.write(name); 
      for (var nameSearch in friends) 
       { 
        alert(nameSearch.firstName); 
        if(friends[nameSearch].firstName===name) 
         { 
          return friends[nameSearch]; 
         } 
       } 
     } 

    search("Wendy"); 

</script> 
+1

nicht sicher, was Frage ist? – guest271314

+1

Sooo du hast uns einen Code und einen Titel gegeben. Was ist deine Frage? Wir wollen helfen, aber wir brauchen Kontext! Bitte [bearbeiten] Sie Ihre Frage. –

+1

Fragen müssen eine klare, präzise Frage enthalten. Wir raten nicht, was ein Code-Stapel bedeuten könnte. – jfriend00

Antwort

0

Theres ein paar Dinge falsch mit Ihrem Code:

  • Objekte keine Länge Eigenschaft haben, so dass der zweite Alarm für friends.length nicht
  • funktionieren Wenn Sie das mit for in Sie den Schlüssel des Objekts verweisen, so dass in diesem Fall wird es bill, steve oder wendy so sein, wenn Sie nameSearch.firstName tun es seit nameSearch undefiniert ist ein String
  • Der Grund, warum Ihr Beispiel fehlschlägt, ist, dass Sie nach Groß- und Kleinschreibung suchen. wendy! = Wendy. Beachten Sie auch, dass triple equals den Konstruktor überprüft. nur untere Gehäuse alle Ihre Suchtext

Code zu beheben, können Sie versuchen:

var friends = { 
 
    bill: { 
 
     firstName: "Bill", 
 
     lastName: "Gates", 
 
     number: "205-555-1111", 
 
     address:["One Microsoft Day","Redmond","WA","90852"] 
 
    }, 
 

 
    steve: { 
 
     firstName: "Steve", 
 
     lastName: "Jobs", 
 
     number: "408-555-2222", 
 
     address: ["One Infinite Loop", "Cupertino", "CA", "95014"] 
 
    }, 
 

 
    wendy: { 
 
     firstName: "Wendy", 
 
     lastName: "Johnson", 
 
     number: "510-555-3333", 
 
     address: ["3555 Anyplace drive","New York", "NY","11001"] 
 
    } 
 

 
}; 
 

 
var search = function(name) { 
 
    for (var nameSearch in friends) { 
 
    if(friends[nameSearch].firstName.toLowerCase()===name.toLowerCase()) { 
 
     return friends[nameSearch]; 
 
    } 
 
    } 
 
} 
 

 
console.log(search("wendy"));