array of objects javascript
//Creating a list
var fruits = ["Apple", "Banana", "Cherry"];
//Creating an empty list
var books = [];
//Getting element of list
//Lists are ordered using indexes
//The first element in an list has an index of 0,
//the second an index of 1,
//the third an index of 2,
//and so on.
console.log(fruits[0]) //This prints the first element
//in the list fruits, which in this case is "Apple"
//Adding to lists
fruits.push("Orange") //This will add orange to the end of the list "fruits"
fruits[1]="Blueberry" //The second element will be changed to Blueberry
//Removing from lists
fruits.splice(0, 1) //This will remove the first element,
//in this case Apple, from the list
fruits.splice(0, 2) //Will remove first and second element
//Splice goes from index of first argument to index of second argument (excluding second argument)
let products = [
{
name: "chair",
inventory: 5,
unit_price: 45.99
},
{
name: "table",
inventory: 10,
unit_price: 123.75
},
{
name: "sofa",
inventory: 2,
unit_price: 399.50
}
];
function listProducts(prods) {
let product_names = [];
for (let i=0; i<prods.length; i+=1) {
product_names.push(prods[i].name);
}
return product_names;
}
console.log(listProducts(products));
function totalValue(prods) {
let inventory_value = 0;
for (let i=0; i<prods.length; i+=1) {
inventory_value += prods[i].inventory * prods[i].unit_price;
}
return inventory_value;
}
console.log(totalValue(products));
// The user object will be the test data for the notes taken below,
// ALL NOTE ARE AND INFO CAN BE FOUND AT HACKERNOON!
// THIS IS NOT MY WORK, I AM ONLY POSTING IT TO GREPPER FOR EASE OF USE OF FINDING THIS
// MATERIAL LATER IF NEED BE!
// With that said enjoy the notes :D
const user = {
id: 101,
email: 'jack@dev.com',
personalInfo: {
name: 'Jack',
address: {
line1: 'westwish st',
line2: 'washmasher',
city: 'wallas',
state: 'WX'
}
}
}
// To access the name of our user we will write:
const name = user.personalInfo.name;
const userCity = user.personalInfo.address.city;
// This is the easy and straight-forward approach
// But for some reason, if our user's personal info is not available, the object structure
// will be like this:
const user = {
id: 101,
email: 'jack@dev.com'
}
// Now if you try to access the name, you will be thrown "Cannot read property 'name'
// of undefined"
const name = user.personalInfo.name; // Cannot read property 'name' of undefined
//This is because we are trying to access the name key from an object that does not exist
// The usual way how most devs deal with this scenario is
const name = user && user.personalInfo ? user.personalInfo.name : null;
// Undefined error will NOT be thrown as we check for existence before access
// This is okay if your nested structure is simple, but if you have your data nested
// 5 or 6 levels deep, then your code will look really messy like this:
let city;
if (
data && data.user && data.user.personalInfo &&
data.user.personalInfo.addressDetails &&
data.user.personalInfo.addressDetails.primaryAddress
) {
city = data.user.personalInfo.addressDetails.primaryAddress;
}
// for more information please visit:
// https://hackernoon.com/accessing-nested-objects-in-javascript-f02f1bd6387f