Search for a friend understanding


#1



Search for a friend


Im trying to understand line 31, friends[firstName].firstName
How does friends[firstName] equate to the three keys in variable friends.
Why does it return not defined when I console.log(friends[firstName].firstName)

Im sorry If i didnt explain myself Im finding this part very confusing.


var friends = {
john: {
firstName: 'John',
lastName: 'Stones',
number: '555 333 444',
address: ['Boston 2555']
},

bill: {
    firstName: 'Bill',
    lastName: 'Gates',
    number: '555 111 222',
    address: ['Los Angelis 254']
},
steve: {
    firstName: 'Steve',
    lastName: 'Jobs',
    number: '555 555 222 ',
    address: ['New York 3467']
}
};

var list = function (friends) {
    for (var firstName in friends) {
        console.log(firstName);    
    }    
};

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

};


#2

In order for us to help you, we need you to provide us with your code, lesson and error


#3

Yea sorry, Its my first question so i didnt understand how to enter the information :frowning:


#4

@grantis,
var friends= {
bill: { firstName: 'Bill',
lastName: 'Gates',
number: '444-444-4444',
address: [ 'One Microsoft way', 'Redwood', 'WA' ]
},
steve: {
firstName: 'Steve',
lastName: 'Jobs',
number: '333-333-3333',
address: [ 'Two infinite loop', 'Bentown', 'DV' ]
}
};

keep repeating these two lines
An object has one or more properties seperated by a comma-,
Each property consists of a property-key and it's associated value

Description of the friends object.
The friends object has 2 properties and are seperated by a comma-,

there is a bill property with property-key bill and it's associated object value
(this associated object has 4 properties, the property-keys being firstName, lastName,number and address)
there is a steve property with property-key steve and it's associated object value
(this associated object has 4 properties, the property-keys being firstName, lastName,number and address)

access via dot-notation == only literal property-key allowed

friends.bill ==> you will get the associated value of the bill property-key, thus
you get the object with 4 properties

friends.bill.lastName ==> you will get the associated value of the lastName property-key

access via the square-bracket-notation == literal & VARIABLE

1 using the literal property-key

friends["bill"]
friends["bill"]["lastName"]

2 using the property-key by reference (=== via a variable )

var propertyKey1 = "bill";
var propertyKey2 ="lastName";
friends[propertyKey1] ==> you will get the associated value of the bill property-key, thus
you get the object with 4 properties

friends[propertyKey1][propertyKey2]
in this case you will get the string VALUE of the lastName property
of the associated object VALUE of bill

==============================================================

+++ friends list and search and for-in explained.
Look here for an explanation
object
function
for-in-loop
list-function
search-function
http://www.codecademy.com/forum_questions/545275fd8c1ccc8e3e000a23#comment-5457b12c9c4e9d87cb00003f