Tengo la siguiente entrada que recibo:
const myString = "['one', 'two']";Cuando ejecuto el siguiente comando:
console.log(typeof myString); consigo una string
Esto tiene sentido, ya que se trata de una entrada de cadena. El tipo de entrada está fuera de mi control, debo recibir esto como un tipo de cadena.
Sin embargo, me gustaría convertir esta cadena en una matriz formal de cadenas.
Por ejemplo:
const myArray = ['one', 'two'];Entonces, cuando ejecuto:
console.log(typeof myArray); consigo object .
JSON.parse() y JSON.stringify pero no tuve suerte.
Los conceptos básicos de mi pregunta son ¿cómo puedo (en JavaScript) convertir una matriz de cadenas en una matriz de cadenas?
JSON.parse funcionaría, si el JSON no fuera inválido. Como se menciona en los comentarios, la cadena debería formatearse como '["1", "2"]' .
Si no tiene control sobre el formato, puede analizarlo manualmente: si las cadenas no contienen comillas, puede usar #replaceAll("'", '"') .
Si tiene casos extremos que necesita cubrir, json5 puede ayudarlo: JSON5.parse(str) una vez que haya cargado el script a través de NPM o unpkg
JSON solo reconoce el uso de " " . Para analizarlo , debe usar comillas dobles en lugar de comillas simples.
const myString = "['one', 'two']"; // change to const myString = '["one", "two"]';Aquí hay un ejemplo:
// 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 En el caso de que necesite cambiar ' a " simplemente use 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 myArrayLa variable anterior myArray contiene una matriz. Para convertir la matriz en una cadena, hay un método incorporado en myArray.toString(). Ahora, para convertir una matriz en una cadena, usaremos el método de división como se muestra arriba.