2016-06-06 13 views
1

printPerson nimmt ein Objekt als ein Argument, seine Schleife iteriert durch alle seine Eigenschaften und ist zum Drucken sie alle aus.Javascript Object.Property Protokollierung undefined

Wie Sie sehen können, habe ich sowohl die und property Variablen geloggt und sie funktionieren gut. person wird als ein Objekt und property als eine Zeichenfolge mit dem richtigen Eigenschaftsnamen identifiziert, der angibt, dass die Schleife ebenfalls einwandfrei funktioniert. Wenn es jedoch um die Protokollierung person.property geht, ist der Rückgabewert undefined.

Was fehlt mir?

var bob = { 
    firstName: "Bob", 
    lastName: "Jones", 
    phoneNumber: "(650) 777-7777", 
    email: "[email protected]" 
}; 

var mary = { 
    firstName: "Mary", 
    lastName: "Johnson", 
    phoneNumber: "(650) 888-8888", 
    email: "[email protected]" 
}; 

var contacts = [bob, mary]; 

function printPerson(person) { 
    for (property in person){ 
     console.log(person); 
     console.log(property); 
     console.log(person.property); 
    } 
} 

function list(){ 
    for (var i=0;i<contacts.length;i++){ 
     printPerson(contacts[i]); 
    } 
} 

list(); 

Antwort

3

Sie benötigen Klammer-Notation verwenden, wenn Variablen als Schlüssel verwenden:

console.log(person[property]); 

Hier sind die relevanten Dokumente: MDN on Objects Properties

Verwandte Themen