Tengo una cadena de

 var myString = "['Item', 'Count'],['iPad',2],['Android',1]";

Necesito para convertirlo en una matriz donde:

myArray[0][0] = 'Item';
myArray[0][1] = 'Count';
myArray[1][0] = 'iPad';
myArray[1][1] = 2;

etc…

La cadena puede variar en longitud, pero siempre será en el formato anterior. He intentado dividir y empalme y cualquier otro “ing” no puedo pensar, pero no puedo conseguirlo.

Puede alguien ayudar por favor?

OriginalEl autor Fred | 2012-11-29

4 Comentarios

  1. 13

    Si la cadena es cierto que el seguro, el más simple sería concatenat [ y ] al principio y al final y, a continuación,eval.

    var arr = eval("[" + myString + "]");

    Si deseaba una mayor seguridad, utilice comillas dobles para las cadenas, y el uso JSON.parse() de la misma manera.

    var myString = '["Item", "Count"],["iPad",2],["Android",1]';
    
    var arr = JSON.parse("[" + myString + "]");

    Esto limitará a las JSON tipos de datos, pero dado su ejemplo de cadena, que va a funcionar bien.

    DEBE REEMPLAZAR ' con ". no funciona.
    Que ya se comentó en mi respuesta, pero he añadido la cadena modificada para ser claros.
    no ver….:-)
    En el clavo! Muchas gracias.
    Eres bienvenido.

    OriginalEl autor I Hate Lazy

  2. 1

    intente esto :

    JSON.parse("[['Item', 'Count'],['iPad',2],['Android',1]]".replace(/\'/g,"\""))

    Convertir la cadena a una matriz multidimensional

    OriginalEl autor Royi Namir

  3. 0

    escribir el código como

    var myString = "[['Item', 'Count'],['iPad',2],['Android',1]]";

    y sólo

     var arr = eval(myString);

    OriginalEl autor Yogesh Prajapati

  4. 0

    Traté de usar eval, pero en mi caso es doens no funciona… Mi necesidad es convertir una cadena en un array de objetos. Esta es mi cadena (una petición ajax resultado):

    {'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}

    cuando intento:

    x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}";
    eval(x);

    Voy a recibir un “testigo Inesperado :” error.

    Mi solución fue:

    x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}"; 
    x = "temp = " + x + "; return temp;"
    tempFunction = new Function (x);
    finalArray = tempFunction();

    ahora tener el objeto finalArray!

    Espero ayudar

    new Function(string) es tan peligroso como eval, asegúrese de que un usuario no puede cambiar los atributos de un Objeto`.

    OriginalEl autor bocapio

Dejar respuesta

Please enter your comment!
Please enter your name here