-2

I am a beginner in Typescript, and I am looking for a neat way to convert all the arrays in an object to a set.

Input:

const inputObject = {'a': [1, 2, 3], 'b': [2, 2, 2], 'c': [3,3,2,4]};

Output

{'a': Set(3){1, 2, 3}, 'b': Set(1){2}, 'c': Set(3){2, 3, 4};

I know how to work on it iteratively key by key and get the solution. I am looking if I can do it more elegantly and modify the same inputObject instead of creating a new object.

2

2 Answers 2

1

This code works, but not sure why it isn't working in StackOverflow's code editor.

You need to do the following

  1. get the keys of the object you are trying to modify
  2. Update each of them as Set.

const inputObject = {'a': [1, 2, 3], 'b': [2, 2, 2], 'c': [3,3,2,4]};
console.log(inputObject);
Object.keys(inputObject).forEach(key => inputObject[key] = new Set(inputObject[key]));
console.log(inputObject);

Sign up to request clarification or add additional context in comments.

2 Comments

Why is this the accepted answer and not the one from Paulo?
@Andreas I'm not sure, may be OP found interating keys more easily understandable.
1

I think this code Works fine!

const inputObject = {'a': [1, 2, 3], 'b': [2, 2, 2], 'c': [3,3,2,4]};
 for (const key in inputObject ) {
    inputObject[key] = new Set(inputObject[key]);
    }
console.log(inputObject);

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.