6/8 error: "Oops, try again. Did you create a function called list?"


#1

var friends = {};

friends.bill = {

firstName: 'Bill',
lastName: 'clinton',
number: 42,
address: ['413 peanut ave' , 'Jamestown' , 'NJ' , '07116']

};

friends.steve = {

firstName: 'Steve',
lastName: 'employment',
number: 8,
address: ['420 marilynn rd', 'Springfield', 'CO', '10420']

};

var list = function (friends){
for(var person in friends){
var friendOne = friends.bill.firstName;
var friendTwo = friends.steve.firstName;
console.log(friendOne);
console.log(friendTwo);
console.log(firstName[person]);
//console.log(person.fristName);
};
};

out put is:
Bill
Steve
{"firstName":"Steve","lastName":"employment","number":8,"address":["420 marijuana rd","Springfield","CO","10420"]}

when it should just be:
Bill
Steve


#2

A console.log(friends); gives:

{ 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
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
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


#3
T h e - B a s i c s

An object has one or more properties seperated by a comma-,
Each property consists of a property-key and it's associated VALUE
var nyc = {
fullName: "New York City",
mayor: "Bill de Blasio",
population: 8000000,
boroughs: 5
};

nyc -object- S p e c i f i e d

The nyc object has 4 properties seperated by a comma-,
- a fullName property with property-key fullName and it's associated string value of "New York City"
- a mayor property with property-key mayor and it's associated string value of "Bill de Blasio"
- a population property with property-key population and it's associated number value 8000000
- a boroughs property with property-key boroughs and it's associated number value 5

for - in - loop - e x p l a i n e d

With the for-in-loop you have a Method
which will iterate over all properties of a given object.
At each iteration it will assign the property-key as a string
to a variable name of your choice.
Thus for (var x in nyc)
will lead to 4 iteration's
iteration-1 var x = "fullName";
iteration-2 var x = "mayor";
iteration-3 var x = "population";
iteration-4 var x = "boroughs";
As they want you to display the property-key and NOT it's associated VALUE
you would use
console.log( x );

If they wanted you to display the associated VALUE of the propery-key you would use
console.log( nyc[x] );


#4

the FUNCTION talk

var myFunc = function( param1, param2) {
       //Begin of  anonymous FUNCTION-BODY
       //VARIABLE -myFunc- has an -anonymous function- assigned
       //this -anonymous function- has 2 PARAMETERS param1 and param2
       //param1 and param2 PARAMETERS are used 
       //as -local- VARIABLES throughout the FUNCTION-BODY

      console.log( param1 + " and " + param2 ) ;

      //End of anonymous FUNCTION-BODY
};

If you want to call/execute the anonymous function
you will have to add a pair of parentheses to the variable myFunc
like
myFunc();
As the anonymous function was defined
as having 2 parameters
you have to provide 2 arguments
in our case 2 string VALUES "Alena" and "Lauren"
like
myFunc("Alena","Lauren");

some quotes from the outer-world:

**argument is the value/variable/reference being passed in,
parameter is the receiving variable used within the function/block**

OR

**"parameters" are called "formal parameters",
while "arguments" are called "actual parameters".**


#5

This is my simple code for 6/8.

var friends={
bill: {
firstName:"Bill",
lastName:"Gates",
number:8055158055,
address:['San Francisco', 'New York']
},
steve: {
firstName:"Steve",
lastName:"Jobs",
number:8005550055,
address:['ha ha', 'lol']
}
};

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

OUTPUT:
bill
steve


#6

@bapoo1998,
A console.log(friends); gives:

{ 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

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

Your list =function= would then have to be written as

var list = function(friends){
    for(var propertyOfFriends in friends)
       console.log(propertyOfFriends +
                 " as =property= of friends " + 
                 " has the associated firstName "+ friends[propertyOfFriends].firstName);
     };
list(friends);