Languages
[Edit]
EN

JavaScript - get object property by path

12 points
Created by:
Dollie-Rutledge
716

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.

Runnable example:

// ONLINE-RUNNER:browser;

const getObjectProperty = (object, path) => {
  	if (object == null) { // null or undefined
    	return object;
    }
  	const parts = path.split('.');
	for (let i = 0; i < parts.length; ++i) {
      	if (object == null) { // null or undefined
        	return undefined;
        }
      	const key = parts[i];
    	object = object[key];
    }
  	return object;
};


// Usage example:

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

console.log(getObjectProperty(data, 'user.username'));
console.log(getObjectProperty(data, 'user.password'));
console.log(getObjectProperty(data, 'rapot.title'));
console.log(getObjectProperty(data, 'rapot.goal'));

Output:

john
Secret$$
Storage usage raport
Remove unused data.

Reduce method 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 raport',
        goal: 'Remove unused data.'
    }
};

console.log(getObjectProperty(data, 'user.username'));
console.log(getObjectProperty(data, 'user.password'));
console.log(getObjectProperty(data, 'rapot.title'));
console.log(getObjectProperty(data, 'rapot.goal'));

Output:

john
Secret$$
Storage usage raport
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