Retrieving a specific value from a nested key in a JSON file

Looking for help on extracting the main key from a JSON file based on sub_key values. For example:

{
  "a": {
    "category": "Drama"
  },
  "b": {
    "category": "Adventure",
  },
  "c": {
    "category": "Drama"
  }
}

I need to identify all main keys where the category value is 'Drama'.

Please provide guidance on how to achieve this using simple functions. Thank you!

Answer №1

Utilize the Object.entries() method to obtain an array containing key / value pairs, followed by using the reduce function to transform it into an array of keys based on the values' category property

const obj = {"a":{"category":"Drama"},"b":{"category":"Adventure"},"c":{"category":"Drama"}};

const dramaKeys = Object.entries(obj).reduce((keys, [key, { category }]) => {
  if (category === "Drama") {
    keys.push(key);
  }
  return keys;
}, []);

console.log(dramaKeys);


You can also achieve the same outcome by utilizing a combination of filter and map

const dramaKeys = Object.entries(obj)
  .filter(([, { category }]) => category === "Drama")
  .map(([key]) => key);

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Failed to access the 'totalQty' property as it is undefined

I have developed a cart object that can hold products in a shopping cart. The issue arises when an item is undefined before it gets added to the cart. How can I ensure that the cart is defined even when it's empty during the session? I am using ejs. ...

Create a multidimensional array from an array of objects

I am trying to organize my data by creating an array and listing each material based on its status. Here is the structure of my current array: let data = [ { Name: 'House 1', Details:[ {Materials: ...

Tips for including attributes in form input HTML tags

Is there a way to modify an attribute of an HTML element? I attempted the following code snippet, but the attribute does not seem to be updating as expected. $(document).ready(function() { $('#username_input').attr('value', 'som ...

The opacity of gmap-window cannot be defined because the property is undefined

Experiencing the following issue: Cannot set property 'opacity' of undefined Here is the HTML and JavaScript code snippet: <ui-gmap-window show="map.infoWindow.show" coords="map.infoWindow.center" options="map.infoWindow.options"></ui- ...

Increase the item count in React only when the button is initially pressed

Users have the option to join various exercise objects by clicking a button, and the Sidebar component will indicate how many different exercises they have joined. The user's count of exercises should only increase if they haven't already joined ...

Creating a dynamic HTML select form with generated options - tips and tricks

My HTML form includes a script that automatically activates the default "option" (with hard-coded option values). In addition, I have a separate script that dynamically generates "options" based on specific column values in MySQL. The issue arises when s ...

What is the best method to extract values from an array?

In my array, I am storing multiple values together such as: var locations = [ 'Bhopal','Mobile',new google.maps.LatLng(18.40,78.81),'images/mobile.png', 'Bangalore','Television',new google.maps.Lat ...

Implementing multiple button functionalities and conditional statements in PHP

Despite my limited experience in PHP, I am working on a page with a basic setup that includes 4 buttons to send email reports regarding printer issues in our print labs to our service desk email. Although I have successfully coded the email sending functio ...

Setting the initial state with an undo action in React: a step-by-step guide

Is it possible to display a snackbar with an undo action when dragging and dropping events in a react-big-calendar? https://i.stack.imgur.com/QFmYA.png I am trying to implement functionality where clicking on the undo action will revert the event back to ...

Extracting JSON data within ajax's success callback

I am currently working on parsing and displaying JSON data that is returned from a server. To accomplish this, I have set up an AJAX call that reads user input, sends it to a PHP page via POST method, and the PHP page var_dumps the array containing the JSO ...

What is the best way to clean HTML in a React application?

I am trying to showcase HTML content on the React front end. Here is the input I have: <p>Hello/<p> Aadafsf <h1>H1 in hello</h1> This content was written using CKEditor from the Admin side. This is how it appears on the React fro ...

Transferring information from the router to the server file using Node.js and Express

I am in the process of creating a web application using node.js, and I need to transfer data from my router file, which handles form processing, to my server file responsible for emitting events to other connected users. router.js module.exports=function ...

Achieve text length that does not exceed the specified limit dynamically

Is it possible to determine the length of the visible portion of text that overflows (or calculate the size of the overflow for further processing) using CSS or JavaScript? If so, can this calculation be done dynamically (such as on window resize)? The g ...

Unfortunately, the Ajax functionality is not performing as expected

What am I missing? 2.php: <button id = "Text_Example">Display</button> <script src="jquery-3.1.1.min.js"></script> <script src="js_code.js"></script> js_code.js: $("#testtext").bind("click", displayNewData); functio ...

Changing the hue of your Vimeo video player?

So far, in my exploration, I have discovered that giving the iframe a background color can affect the timeline number color. However, besides that, I am unable to find a way to modify the player's control colors aside from adjusting the Vimeo embed co ...

What causes a TypeError (Invalid response status code) when a 204 response is returned to a fetch() call within a React Server Component?

Take a look at this straightforward Next.js application: https://codesandbox.io/p/sandbox/next-js-app-router-1bvd7d?file=README.md Here is an API route (/api/hello): export default function handler(req, res) { res.status(204).end(); } And there's ...

Guide to displaying a table enclosed in a div based on a selected value in a select dropdown?

I am attempting to retrieve the table options using the select question-picker: Here is what I have tried: $(document).ready(function() { var question_container = $('.question-picker option[value="1"]').parent(); console.log(question_cont ...

Disable browser suggestions in Material UI's Autocomplete component

Encountering an issue with Material-ui Autocomplete: import Autocomplete from "@material-ui/lab/Autocomplete"; Currently using it in: <Autocomplete id="checkboxes-tags-demo" autoComplete={false} options={sta ...

Optimizing Midnight UTC+0 Setting in JavaScript Date Functions

I am using an MUI Datepicker that allows me to choose a day without specifying the time. For example, if I select 01.09.1970, in the console log it displays as Tue Sep 01 1970 00:00:00 GMT+0100 (Central European Standard Time). This indicates that even tho ...

Exploring AngularJS capabilities: Retrieving data and headers from an HttpResponse

Currently, I have a REST API developed using Spring Boot. In the frontend, AngularJS 1.5 is being used. The login service not only sends data but also includes a header. I am wondering how I can effectively read both the data and header on the AngularJS ...