Alter deeply nested object

I am facing a challenge with this particular object:

const a = {
  elementErrors: {
    errorMessages: [],
    errors: {
      project: "Issues with this Issue Type must be created in the same project as the parent."
    }
  },
  issueKey: "JP-55",
  status: 400
}

It is my goal to modify it in such a way that the nested project property incorporates the issueKey property at the end of the string. Essentially, it should read as

"Issues with this Issue Type must be created in the same project as the parent (JP-55)."

Despite my efforts and attempts, I have not yet been able to devise a solution.

The desired outcome is depicted below:

const a = {
      elementErrors: {
        errorMessages: [],
        errors: {
          project: "Issues with this Issue Type must be created in the same project as the parent (JP-55)."
        }
      },
      issueKey: "JP-55",
      status: 400
    }

Thank you for your assistance

Answer №1

If you want to append something to the end of a string, you can use the += operator.

a.elementErrors.errors.project += ` (${a.issueKey})`;

let a = {
  elementErrors: {
    errorMessages: [],
    errors: {
      project: "Issues with this Issue Type must be created in the same project as the parent."
    }
  },
  issueKey: "JP-55",
  status: 400
}

a.elementErrors.errors.project += ` (${a.issueKey})`;

console.log(a);

Answer №2

If you need to calculate a new attribute based on existing values, consider accessing and modifying it accordingly.

For cases where there is always a period at the end, a combination of split() and template literals can be used effectively.

const a = {
  elementErrors: {
    errorMessages: [],
    errors: {
      project: "Issues with this Issue Type must be created in the same project as the parent."
    }
  },
  issueKey: "JP-55",
  status: 400
}

a.elementErrors.errors.project = `${a.elementErrors.errors.project.split('.')[0]} (${a.issueKey}).`;

console.log(a);

Note: The provided code snippet may encounter issues if there is no . present.

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

Modifying the CSS attributes within an iframe by referencing the parent window's properties

I am facing a challenge involving running an iframe on two separate pages within the same website, each with distinct CSS properties. The dilemma arises from the limited space available on my index.php page, where I aim to confine text within the iframe to ...

Optimizing code structure through pipe/compose and map nesting in functional programming

Just starting out with functional programming and wondering if there's a better way to write this. The nested map function calls can get quite hard to read :p TypeScript type $parse = (text: string) => string[][][]; const parse: $parse = pipe(split ...

Under what circumstances is it possible to iterate through an empty array?

When defining arrays in JavaScript using Array(n), it creates an empty array. If I write the following code: Array(2).map((val) => console.log(val)) Nothing happens when running this code, but if I spread out the elements of the array into another a ...

Use Javascript to dynamically load a PHP file with the include function

I've been searching for a solution to this issue with no luck so far. Spending hours trying to figure it out. On my PHP page, I'm making an SQL call and dynamically building the content. There's a list of items with onClick JavaScript funct ...

Adjust the vertical size of the slider in Jssor

Hi there! I'm currently working on a slider that I want to have a dynamic width (100% of the container) and a static height of 550px on PCs, while being responsive on mobile devices. Below is my code snippet: <div class="col-md-6 right-col" id="sl ...

Issue with transferring JQuery variable to JavaScript

Using JQuery, I am attempting to retrieve a variable from PHP located at a specific URL and then utilize that variable in JavaScript to modify the content on the webpage. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">& ...

What is the best way to prevent TSC from including the node_modules folder in my compilation

I have encountered a persistent issue that all previous solutions have failed to address. Here is the snippet from my tsconfig file that I believe should resolve the problem: ... "compilerOptions": { "skipLibCheck": true, ... &quo ...

What is the best way to configure angular $filter to perform case-sensitive string comparisons when filtering data?

I've been working on creating a case-sensitive filter in an Angular controller to filter an array. Here is the data: var stoneArr = [ { "stone_name": "Diamond", "id": 16 }, { "stone_name": "Ruby", "id": 1 ...

Struggling with integrating Skybox in THREE.js

My console is not showing any errors. I am utilizing the live server VS code extension to execute the JS code. Can someone please assist me?" HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"& ...

Why isn't pagination typically positioned inside of a tbody element rather than before or after it?

I've created a user table that is based on the number parameter. I added a filter that listens to input and performs an AJAX call each time with the filter applied to the name field. However, the pagination is initially displayed ABOVE the entire ta ...

Utilizing separate JavaScript files in Bootstrap 5: A guide to implementation

I am currently using Bootstrap, but I am looking to decrease the size of the Javascript files being used. My main requirements are dropdown/collapse and occasionally carousel functionalities, so I only want to include those specific scripts. Within the "d ...

serverless with Node.js and AWS encountering a 'TypeError' with the message 'callback is not a function'

Within my handler.js file, I am utilizing the getQuotation() function from the lalamove/index.js file by passing the string "hi" as an argument. 'use strict'; var lalamove = require('./lalamove/index.js'); module.exports.getEstimate = ...

Acquire the nested object within a MongoDB document using its assigned ID

Looking to retrieve and edit a specific comment within a post, but not sure where to start. Here is an example of my Post data structure: { "title" : "First Node.js App", "body" : "testing 123", "st ...

Various dateInput formats supported by mat-datepicker

I'm facing an issue while configuring two mat-datepickers with different date formats - "MM/YYYY" and "DD/MM/YYYY". I attempted to set the format for MM/YYYY in one module and the format for DD/MM/YYYY in the app module. Here is my first code snippet ...

Can someone clarify if there is a distinction between using x.f.call(x, ...) and x.f(...) in JavaScript?

Reviewing some code reveals the following: this.f.call(this); Or in other scenarios: this.someObj.f.call(this.someObj); Is there a distinction between these and: this.f(); this.someObj.f(); Under what circumstances might the behavior differ? (e.g. if ...

The background image fails to load in ReactJS application

Usually, I have no trouble finding solutions to my problems, but this time I'm really stuck - and I apologize in advance if my question seems silly or trivial. I am currently working on a simple React app where I need to set a background image for th ...

What is the best way to modify onClick events for elements in Ionic v4 with React?

Is there a way for me to interact with a button or IonItemSliding in order to alter the text or color of an element? <IonItemOptions side="start"> <IonItemOption color="success">Yes</I ...

Design an HTML form that includes checkboxes for selecting multiple values

I am encountering an issue with a Checkbox field in an HTML input form. The values for the checkboxes are being fetched from another table and I am trying to select multiple users using these checkboxes. However, it seems like my code is not working as int ...

What are the steps to limit entry to a page in Rails unless the user has come through a designated link on another page?

I'm currently developing an online computer-based test using Rails. Each question is accessed through a unique page URL in the format /questions/<id>. On each question page, there is a 'next' button that directs users to the follow ...

In a set of strings, locate the two shortest ones, remove them, and then add them back to the end repeatedly until there is only one string

I've been struggling with a coding challenge for a couple of hours now and could really use some help. Here are the detailed instructions: Take an array of strings and create a single string by following these steps: Repeat the following steps as lo ...