JavaScript: Target a given value in a nested JSON object
JavaScript fundamental (ES6 Syntax): Exercise-6 with Solution
Write a JavaScript program to target a given value in a nested JSON object based on the given key.
- Use the in operator to check if target exists in obj.
- If found, return the value of obj[target].
- Otherwise use Object.values(obj) and Array.prototype.reduce() to recursively call dig on each nested object until the first matching key/value pair is found.
Sample Solution:
JavaScript Code:
//#Source https://bit.ly/2neWfJ2
const dig = (obj, target) =>
target in obj
? obj[target]
: Object.values(obj).reduce((acc, val) => {
if (acc !== undefined) return acc;
if (typeof val === 'object') return dig(val, target);
}, undefined);
const data = {
level1: {
level2: {
level3: 'some data'
}
}
};
const dog = {
"status": "success",
"message": "https://images.dog.ceo/breeds/african/n02116738_1105.jpg"
}
console.log(dig(data, 'level3'));
console.log(dig(data, 'level4'));
console.log(dig(dog, 'message'));
Sample Output:
some data undefined https://images.dog.ceo/breeds/african/n02116738_1105.jpg
Flowchart:

Live Demo:
See the Pen javascript-basic-exercise-1-6 by w3resource (@w3resource) on CodePen.
Improve this sample solution and post your code through Disqus
Previous: Write a JavaScript program to convert an array of objects to a comma-separated values (CSV) string that contains only the columns specified.
Next: Write a JavaScript program to converts a specified number to an array of digits.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends
- Python Interview Questions and Answers: Comprehensive Guide
- Scala Exercises, Practice, Solution
- Kotlin Exercises practice with solution
- MongoDB Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - JOINS
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join