Home > Blockchain >  JavaScript - Converting string-array to an array of strings
JavaScript - Converting string-array to an array of strings

Time:05-31

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?

CodePudding user response:

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

CodePudding user response:

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.

CodePudding user response:

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.

  • Related