0

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?

4
  • An array is an object Commented May 30, 2022 at 12:56
  • 3
    JSON.parse() would work if myString is a valid JSON string (double quotes around your elements, not single quotes - '["one", "two"]') Commented May 30, 2022 at 12:57
  • maybe something interesting to read, here Commented May 30, 2022 at 12:57
  • 1
    Yea as @NickParsons said, you can replaceAll ' with " if you don't control the input and then it just becomes this answered question Commented May 30, 2022 at 12:59

3 Answers 3

3

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

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

Comments

1

JSON only recognizes the usage of " ". To parse it you need to use double quotes instead of single quotes.

const myString = "['one', 'two']"; 
// change to
const myString = '["one", "two"]';

Heres an example:

// Not working
const Str = "['one', 'two']";

console.log(Str); // ['one', 'two']
console.log(typeof Str); // string

JSON.parse(Str); // SyntaxError: Unexpected token ' in JSON at position 1

// Working example:
const myString = '["one", "two"]';

console.log(myString); // ["one", "two"]
console.log(typeof myString); // string

const myArray = JSON.parse(myString);

console.log(myArray); // [ 'one', 'two' ]
console.log(typeof myArray); // object

In the case that you need to change ' to " just use replace.

Comments

0
const myArray = ['one', 'two'];
let str = myArray.toString();
console.log(str);//one,two
console.log(typeof str)//string
let srr = str.split(",");
console.log(srr);//[ 'one', 'two' ]
console.log(typeof srr)//object same as that of myArray

The above variable myArray is holding an array . In order to convert the array into string there is an inbuilt method in myArray.toString(). Now to convert array to string we will use split method as shown above.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.