Search code examples
javascriptarraysobjectjavascript-objects

JavaScript - Converting string-array to an array of strings


I have the following input which I receive:

const myString = "['one', 'two']";

When I run the following command:

console.log(typeof myString);

I get string

This makes sense, as this is a string input. The input type is out of my control, I must receive this as a typeof string.

However, I would like to convert this string, into a formal array of strings.

For example:

const myArray = ['one', 'two'];

So, when I run:

console.log(typeof myArray);

I get object.

I have tried JSON.parse() and JSON.stringify but to no luck.

The basics of my question are how do I (in JavaScript) convert a string array, into an array of strings?


Solution

  • JSON.parse would work, if the JSON wasn't invalid. As mentioned in the comments, the string would have to be formatted as '["1", "2"]'.

    If you do not have control over the formatting, you can parse it manually: if the strings don't contain quotes, you can use #replaceAll("'", '"').

    If you have edge cases you need to cover, json5 may be able to help: JSON5.parse(str) once you have the script loaded via NPM or unpkg