Confirm the presence of an element in a FormGroup using Typescript

In my FormGroup, which I will refer to as form, I need to set multiple values from an object:

Here is the current code snippet:

if(form.get('value1') && myObj.val1){
   form.get('value1).patchValue(myObj.val1);
}
if(form.get('value2') && myObj.val2){
   form.get('value2).patchValue(myObj.val2);
}
if(form.get('value3') && myObj.val3){
   form.get('value3).patchValue(myObj.val3);
}

Is there a more efficient way to achieve this without using so many if statements?

Answer №1

In order to simplify the process, you can create a mapping and then loop through it like shown below:

const mapping: [string, string][] = [
    ['value1', 'val1'],
    ['value2', 'val2'],
    ['value3', 'val3'],
]

for (const [inputName, propName] of mapping)
{
    if(form.get(inputName) && myObject[propName])
        form.get(inputName).patchValue(myObject[propName]);
}

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

Unveiling RxJs: The secret to extracting the notifier value using the takeuntil operator

I have a straightforward Rxjs timer set up that runs until a notifier emits a signal, it's pretty basic so far. enum TimerResult = { COMPLETE, ABORTED, SKIPPED }; _notifier: Subject<TimerResult> = new Subject(); notifier$: Observab ...

I am confused about the term "can only be default-imported using the 'esModuleInterop' flag", could you explain it to me?

I ran into a puzzling error: lib/app.ts:1:8 - error TS1259: Module '"mongoose-sequence"' can only be default-imported using the 'esModuleInterop' flag and it seems to be related to this line of code: import _ from 'mongoose-sequ ...

Developing a cutting-edge REST API with Node.js and TypeScript for the modern era in 202

Currently, I am tasked with creating a rest API using Node.JS and TypeScript. Initially, I considered using Express, but after looking into it further, it seems that Koa, Fastify, and Hapi may offer a more contemporary and efficient solution. With that in ...

Trouble with selectionChange event in mat-select component in Angular 13

I'm having trouble getting the selectionChange event to fire in my mat-select when the value is changed. html file <mat-select (selectionChange)="changeCategory()"> <mat-option *ngFor="let category of categ ...

Experiencing difficulties establishing a connection with my NodeJs server socket and TypeScript

I've been struggling to run the code from this post and I really need some help. The code can be found at: https://medium.com/@mogold/nodejs-socket-io-express-multiple-modules-13f9f7daed4c. I liked the code as it seems suitable for large projects, but ...

There seems to be a malfunction with the routing feature in the src/index.html file

My routing setup is not functioning as expected in src/index.html angular. What I have is a header with some links for navigation: <header> <div class="logo"> <div class="logo-img-div"> <img src="../../ass ...

Ensuring TypeScript's strict null check on a field within an object that is part of an

When using TypeScript and checking for null on a nullable field inside an object array (where strictNullCheck is set to true), the compiler may still raise an error saying that 'Object is possibly undefined'. Here's an example: interface IA ...

Angular: Connecting template data to different visual presentations

Looking for a solution to display data and map values to another presentation without needing complex ngIf statements or creating multiple components. Check out this sample: https://stackblitz.com/edit/angular-9l1vff The 'vals' variable contain ...

What is the process for implementing a new control value accessor?

I have a directive that already implements the ControlValueAccessor interface (directive's selector is input[type=date]) and now I need another directive that also implements ControlValueAccessor with the selector input[type=date][datepicker] - let&ap ...

Draggable bar charts in Highcharts allow users to interact with the data by clicking

I'm working on creating a chart that allows for setting values by clicking and dragging. While the dragging functionality is working fine, I've run into an issue with the click event. When I click to set a new value, the draggable feature acts er ...

Deploying a Node.JS Express API containerized with Docker on the Amazon Web Services Cloud

Throughout my experience as a student developer, I have exclusively used the Firebase suite and deployed my express apps as callable endpoints using Firebase Functions. Lately, I've been interested in delving into AWS, Docker containers, and SQL data ...

Connecting Ag Grid with modules

Unable to link with modules as it's not a recognized attribute of ag-grid-angular https://i.sstatic.net/2zwY2.png <ag-grid-angular #agGrid style="width: 100%; height: 100%;" id="myGrid" class="ag-theme-balham" [mod ...

Information about the HTML detail element in Angular 2 is provided

Hi, I'm curious if there's a way to know if the details section is open or closed. When using <details (click)="changeWrap($event)">, I can't find any information in $event about the status of the details being open. I am currently wor ...

Develop a method for establishing a connected confidential variable without the need to generate public functions individually for each one

Are there any specific syntax or design patterns that can be used to achieve the following scenario? Let's consider a class structure like this: Class myClass{ private a: int; private b: int; private c: int; private d: int; ... //20 more pri ...

Ensure the variable is valid by using a type guard in the false branch

I am attempting to use a type guard to narrow down a complex type. In my scenario, I want the false branch of the type guard to recognize the complement of the narrowed type. interface Model { side: 'left' | 'right'; } interface LeftMo ...

Guide to defining the typescript type of a component along with its properties

I am facing an issue with my SampleComponent.tsx file: import React from 'react'; type Props = { text: string }; export const SampleComponent: React.FC<Props> = ({text})=><div>{text}</div>; SampleComponent.variant1 = ({tex ...

The function 'sendEmailVerification' is not a property of the type 'Promise<User>'

Hey there, I've been working on my ionic4 app and have encountered an issue with the sendEmailVerification function. The console is suggesting that I may have forgotten to use 'await'. Any ideas on how to resolve this? Thank you. import { In ...

Shifting an item between various components to modify its properties

I am currently working with an HTML table that looks like this: <table> <tr> <td>Name</td> <td>Surname</td> <td>ID Number</td> <td>Edit</td> </tr> <tr *ngFor="let p ...

Encountering a "TypeError: Cannot read property 'push' of undefined" in Angular 2

I have been working on an Angular2 component where I declared an array of strings and initialized it at the same time. However, I encountered an error of 'undefined' when I tried to push data in one of the methods. I am unsure about what I might ...

Caution: The attribute name `data-*` is not recognized as valid

I am attempting to import an SVG file in my NEXT.js project using the babel-plugin-inline-react-svg. I have followed all the instructions and everything is functioning perfectly. // .babelrc { "presets": ["next/babel"], "plugin ...