Loop does not run as expected in TypeScript

Just dipping my toes into TypeScript here, so forgive me if I'm making a rookie mistake. Here's the code snippet I've got:

const gCharData: any = {};
function buildChar()
{
    const key = "Char1";
    let currentChar = gCharData[key];
    if (!currentChar) {
        currentChar = {
            name: "Jack",
            parts: new Set(),
        };
        gCharData[key] = currentChar;
    }
    currentChar.parts.add("Head");
}
function foo(chars: { [x: string]: any; })
{
     for (var charName in chars) {
        const details = chars[charName];
    
        for (var name of details.parts) {
            /*NOT EXCUTING*/
        }
    }
}
function main()
{
    buildChar()
    foo(gCharData)
}
main();

However, the second for loop is not running. Any ideas why this might be happening?

Thanks a bunch!

Answer №1

It appears that the issue lies specifically with the creation of the Set object. To iterate over the parts within the Set, one approach is to follow this method:

function foo(chars: { [x: string]: any; })
{
     for (var charName in chars) {
        const details = chars[charName];
    
        for (var name of Array.from(details.parts)) {
            console.log("value: " + name);
    }
}

You can view the live code here: https://jsfiddle.net/0mkcpqnu/1/

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

What is the best way to delete an item from a React array state?

In my Firebase database, I have an array stored under the root branch called Rooms. Within the app, there is a state named rooms which is also an array. I successfully set it up so that when a user enters a new room name and submits it, it gets added to th ...

Unexpected next() error occurred

Currently, I am working on a project using node.js along with express and MongoDB. I have encountered an error that I cannot seem to understand. When I remove the next() function call, everything works perfectly fine. However, when I include next(), it tr ...

$.ajax causing a JSON input string malfunction

My web API requires the following JSON format for input: [{ "atrSpaUserId": "47fe8af8-0435-401e-9ac2-1586c8d169fe", "atrSpaClassLegendId": "00D18EECC47E7DF44200011302", "atrSpaCityDistrictId": "144d0d78-c8eb-48a7-9afb-fceddd55622c"}, { "atrSpaUserId": "47 ...

Guide to stripping HTTP headers from a REST API request using JavaScript

Hey there! I'm currently working on extracting a specific part of the response from the {}. This information is retrieved from the gemini public database, and my goal is to retrieve only the content within the curly braces and store it as a string in ...

Obtaining an element in the Document Object Model (DOM) following

There are numerous questions and answers regarding this issue, but I am struggling to adapt it to my specific case. My extension fetches positions (1,2,...100) on the scores pages of a game. Upon initial page load, I receive the first 100 positions. Howev ...

ExtJs rich text editor for text input

My attempt to insert a neatly formatted JSON string into my textarea field has been unsuccessful. I followed this method to format the string: How can I beautify JSON programmatically? and then simply used textarea.setValue(formattedJson); Take a look ...

Is it possible to access JSON with a numeric key and receive undefined as a result?

I've been attempting to extract information from my JSON data, but I keep getting an undefined result. Here is a snippet of my JSON: { "1": "A", "2": "B", "3": "C", "4": "D", "5": "E", "6": "F", "key":"pair" } This i ...

Utilizing Sentiment Analysis API with Ionic 2 Angular and handling CORS restrictions

Currently, I am in the process of developing a mobile application that can analyze an individual's thoughts using the Aylien Sentiment Analysis API. The technology stack I am utilizing includes Ionic 2 and Angular 4. While I have successfully integrat ...

Send a C# list to the controller using JavaScript

I am struggling to figure out how to pass a full list using Ajax. I have a C# list in my cshtml file and I need to send it to the controller through Ajax. While I know how to pass simple variables, passing a full list of objects is proving to be a challeng ...

Modify the custom attribute value assigned to an image

I am facing an issue with a document containing two thumbnail images (front and rear, like a bank check). I have successfully implemented zoom functionality on the front image by displaying a square part of the original large image. However, when I click o ...

Increase the jQuery Array

After successfully initializing an Array, how can I add items to it? Is it through the push() method that I've heard about? I'm having trouble finding it... ...

searchkit - Issue with Maintaining State of RefinementListFilter Checkboxes

I was curious about the functionality of the RefinementListFilter in searchkit. I have multiple filters that are boolean values, such as {field: 'hasChildren': {'1' : 'Yes', '0': 'No'}} to illustrate the tr ...

scrollbar is shy and not visible

I don't use CSS often, but I attempted to create a scrollable area with the following code. However, it seems to only hide the text that doesn't fit without providing a scrolling option. This behavior is consistent across Chrome, IE, and Firefox, ...

I'm currently working on an if statement that checks for multiples of a specific number

I'm currently working on a coding exercise, but I've encountered an issue with my if/else structure and I can't figure out what's causing the problem. Below is the prompt for the exercise along with the code I have written: Your task ...

Troubleshooting problem with custom Angular directive integrating KineticJS

Hey there, I'm currently working on putting together a KineticJS application in Angular and need to resolve a minor issue. While following an example for setting up a draggable shape in AngularJS using KineticJS from this link: , I encountered this er ...

Tips for resolving undefined error handling in node.js

const fileSystem = require('fs'); const fileName = './prices.json'; const file = require(fileName); const price = require('./prices.json'); const fileName = './prices.json'; if(tmd = message.match(/^!change max ...

`Exit out of the current tab and navigate back to the parent tab`

Looking to add a link on a webpage that will specifically close the active tab in a browser without affecting other tabs. Upon clicking the close link, the user should receive an alert message prompting them to confirm with two options: "YES" and "NO". If ...

Generate a dynamic text-box and drop-down list using HTML and JavaScript

My current project involves generating dynamic text-boxes based on the selection from a drop-down list and input field. https://i.sstatic.net/CMtW9.png When a user chooses 'Option 1' from the drop-down list and enters input such as 'grass& ...

How to use plain JavaScript to extract the value from a textarea in GWT

Situation: I am currently developing a tampermonkey script to enhance certain GWT pages within a third-party application. Unfortunately, I do not have access to the source code or servers. Challenge: My task is to retrieve the value of a textarea element ...

What is the process for displaying an image based on a selection from a dropdown menu?

I am attempting to create a form that will show a movie poster once a user selects which movie they want to view. I have written a function for this purpose, but as a beginner in javascript, something seems to be going wrong. Any assistance you can provid ...