get array of object properties javascript code example
Example 1: object keys javascript
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]
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