1

I have an object of the following type:

type ObjectOfArrays = {
    [id: string]: Array<string>
};

At multiple places in my code I want to push strings to the correct array, referenced by the id. Currently, I would have to do this in the following way:

if (id in obj)
    obj[id].push("text");
else
    obj[id] = ["text"];

Is it possible to do this in a shorter way? I understand it probably won't be as simple as an object with numbers, like done here. However, I am curious if there are alternative notations.

Any suggestions or references are welcome, thanks.

sander
  • 73
  • 1
  • 1
  • 9

1 Answers1

2

You can do something similar to the other answer, using an empty array as a default and concat:

const obj = {}

id = '4'
obj[id] = (obj[id] || []).concat(['test'])
console.log(obj)

obj[id] = (obj[id] || []).concat(['test2'])
console.log(obj)
Nick
  • 138,499
  • 22
  • 57
  • 95