JavaScript - 将字符串数组转换为字符串数组

JavaScript - Converting string-array to an array of strings

我收到以下输入:

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

当我运行以下命令时:

console.log(typeof myString);

我得到string

这是有道理的,因为这是一个字符串输入。输入类型不受我控制,我必须将其作为 typeof 字符串接收。

但是,我想将这个字符串转换为正式的字符串数组。

例如:

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

所以,当我 运行:

console.log(typeof myArray);

我得到 object

我已经尝试了 JSON.parse()JSON.stringify 但没有成功。

我的问题的基础是如何(在 JavaScript 中)将字符串数组转换为字符串数组?

如果 JSON 不是无效的,

JSON.parse 工作。如评论中所述,字符串的格式必须为 '["1", "2"]'.

如果您无法控制格式,您可以手动解析它:如果字符串不包含引号,您可以使用 #replaceAll("'", '"').

如果您有边缘情况需要涵盖,json5 可能会有所帮助:JSON5.parse(str) 一旦您通过 NPM 或 unpkg

加载了脚本

JSON只识别" "的用法。要 parse 您需要使用双引号而不是单引号。

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

举个例子:

// 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

如果您需要将 ' 更改为 ",只需使用 replace

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

上面的变量 myArray 保存着一个数组。为了将数组转换为字符串,myArray.toString() 中有一个内置方法。 现在要将数组转换为字符串,我们将使用如上所示的拆分方法。