'Better way to validate an array

I have a function that removes tags inside a collection, sometimes the parameter can be an Array others times just a variable.

I'm doing the parsing like so, just wondering if there is a cleaner way to do it?

I already tried [...tag] but that just split the string

this.removeNotificationTag = async (userId, tag) => {
    const tagsToRemove = Array.isArray(tag) ? tag : [tag];
     
     // if tag is a variable make it an array.
  };

Tried the spread operator, but that just splitted the string.



Solution 1:[1]

Your code is fine, that's the generic way to do it.

If your input is either string or string[], you could also use typeof:

this.removeNotificationTag = async (userId, tag) => {
    const tagsToRemove = typeof tag === 'string' ? [tag] : tag;
    // the rest of the code...
  };

But this is less generic and the code is the same length, so I would stick with what you wrote in the first place.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ben