//ACCESING NESTED OBJECTS
var myStorage = {
"car": {
"inside": {
"glove box": "maps",
"passenger seat": "crumbs"
},
"outside": {
"trunk": "jack"
}
}
};
var gloveBoxContents = myStorage.car.inside["glove box"];
console.log("Accesing nested objects: var gloveBoxContentes = myStorage.car.inside['glove box']; ");
console.log(gloveBoxContents);
//ACCESING NESTED ARRAYS
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];
var secondTree = myPlants[1].list[2];
console.log("Accesing nested arrays: var secondTree = myPlants[1].list[2]; ");
console.log(secondTree);
//EXAMPLE RECORD COLLECTION
var collection = {
"2548": {
"album": "Slipepery Weh Wet",
"artist": "Bon Jovi",
"tracks": [
"Let it Rock",
"You give love a Bad name"
]
},
"2568": {
"album": "1999",
"artist": "Prince",
"tracks": [
"1999",
"Little Red Corvette"
]
},
"1245": {
"artist": "Robert Palmer",
"tracks": []
},
"5439": {
"album": "Abba Gold"
}
}
var collectionCopy = JSON.parse(JSON.stringify(collection));
console.log("var collectionCopy = JSON.parse(JSON.stringify(collection));");
function updateRecords(id, prop, value) {
if (value === ""){
delete collection[id][prop];
} else if (prop === "tracks"){
collection[id][prop] = collection[id][prop] || [];
collection[id][prop].push(value);
}else {
collection[id][prop] = value;
}
return collection;
}
console.log("Update records:")
console.log(updateRecords(5439, "artist","Abba"));
console.log(updateRecords(2568, "tracks","Nothing Compares 2U"));
//ITERATE WITH WHILE LOOPS 2:10:15
var myArray = [];
var i = 0;
while(i < 5){
myArray.push(i);
i++;
};
console.log("Iterate with While Loops");
console.log(myArray);
//ITERATE WITH FOR LOOPS
var forArray = [];
for(var i = 0; i < 5; i++){
forArray.push(i);
};
console.log("Iterate with For Loops");
console.log(forArray);
//ITERATE WITH FOR LOOPS
var oddArray = [];
for(var i = 0; i < 10; i += 2){ //can be backwards i -= 2 i--
oddArray.push(i);
};
console.log("Iterate with For Loops incrementing by 2");
console.log(oddArray);
// 64 - ITERATE THROUGH AN ARRAY WITH A FOR LOOP
var ourArray = [9, 10, 11, 12];
var ourTotal = 0;
for (var i = 1; i < ourArray.length; i++){
ourTotal += ourArray[i];
};
console.log("Iterate through an array with a for loop:");
console.log(ourTotal);
// 65 - NESTING FOR LOOPS
function multiplyAll(arr){
var product = 1;
for (var i = 0; i < arr.length; i++){
for (var j = 0; j < arr[i].length; j++){
product *= arr[i][j];
}
}
return product;
}
var product = multiplyAll([[1,2],[3,4],[5,6,7]]);
console.log("Nesting For Loops:");
console.log(product);
// 66 - ITERATING WITH DO...WHILE LOOPS
var myArray = [];
var i = 10;
do {
myArray.push(i);
i++;
} while (i < 5);
console.log(i, myArray);
// PROFILE LOOKUP
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "054342343234",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "054312323234",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0543423843234",
"likes": ["Intriguing Cases", "Violin"]
}
]
function lookUpProfile(name, prop) {
for (var i = 0; i <contacts.length; i++){
if (contacts[i].firstName === name) {
return contacts[i][prop] || "No such property";
}
}
return "No such contact";
}
var data = lookUpProfile("Sherlock", "likes");
console.log("Profile Lookup Exercise");
console.log(data);
//