how to access property of object which is a property of array in javascript code example
Example 1: javascript access property values list of objects
// Access all properties and values in a JS object:
let valuesArray = Object.entries(MyObject);
for (let value of valuesArray) {
document.write(value + "<br>"); // value is the property,value pair
}
/* Result: propName,value
propName,value
...
For clarity: */
let person = {
name: "Piet",
age: 42
};
Object.keys(person) // = ["name", "age"]
Object.values(person) // = ["Piet", 42]
Object.entries(person) // = [ ["name","Piet"], ["age",42] ]
Example 2: javascript array of objects access properties
// 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: '[email protected]',
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: '[email protected]'
}
// 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