Languages
[Edit]
EN

JavaScript - get object property by path

12 points
Created by:
Dollie-Rutledge
806

In this article, we would like to show you how to get object property by path in JavaScript

In the below example, we create a function that takes two arguments:

  • object we are working on,
  • path to the property in the object (delimited by '.').

With the function, we can get an object's property value for the indicated path.

 

Practical example

// ONLINE-RUNNER:browser;

const getObjectProperty = (object, path) => {
  	if (object == null) {  // null or undefined
    	return object;
    }
  	const parts = path.split('.');
	for (const key of parts) {
    	object = object[key];
      	if (object == null) {  // null or undefined
        	return object;
        }
    }
  	return object;
};


// Usage example:

const data = {
    user: {
        username: 'john',
        password: 'Secret$$'
    },
    rapot: {
        title: 'Storage usage report',
        goal: 'Remove unused data.'
    }
};

console.log(getObjectProperty(data, 'user.username'));  // john
console.log(getObjectProperty(data, 'user.password'));  // Secret$$
console.log(getObjectProperty(data, 'rapot.title'));    // Storage usage report
console.log(getObjectProperty(data, 'rapot.goal'));     // Remove unused data.

 

Array reduce() based solution

// ONLINE-RUNNER:browser;

const getObjectProperty = (object, path) => {
    if (object == null) {  // null or undefined
    	return object;
    }
  	const parts = path.split('.');
    return parts.reduce((object, key) => object?.[key], object);
};


// Usage example:

const data = {
    user: {
        username: 'john',
        password: 'Secret$$'
    },
    rapot: {
        title: 'Storage usage report',
        goal: 'Remove unused data.'
    }
};

console.log(getObjectProperty(data, 'user.username'));  // john
console.log(getObjectProperty(data, 'user.password'));  // Secret$$
console.log(getObjectProperty(data, 'rapot.title'));    // Storage usage report
console.log(getObjectProperty(data, 'rapot.goal'));     // Remove unused data.

 

See also

  1. JavaScript - set object property by path

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join