declaración de dictado multilínea de javascript

Estoy teniendo un problema. Quiero tener un dictado estático

var myDict={"aaa":true,"aab":false,"aac":false,"aad":true, [...] };

Hay muchas entradas y quiero tener un fácil acceso a todas ellas en caso de que necesite cambiar su valor. Debido a esto, no me gusta la declaración de una sola línea.

Como alternativa, logré hacer lo siguiente, ya que el texto de varias líneas está permitido en Javascript:

var dict = {};
var loadDict = function() {

    text = "aaa,true\n\
aab,false\n\
aac,false\n\
aad,true\n\[...]";

    var words = text.split( "\n" );
    for ( var i = 0; i < words.length; i++ ) {
        var pair = words[i].split(",");
        dict[ pair[0].trim() ] = pair[1].trim();
    }   
}

¿Existe una forma mejor/más elegante de tener una declaración de varias líneas de un dictado?

Nota: Crear cadenas de varias líneas en JavaScript es una solución solo para cadenas. no funciona con un dict.

editar: estaba agregando un '\' al final de cada línea. Ese era el problema. Gracias.

preguntado el 12 de junio de 12 a las 22:06

3 Respuestas

var myDict = {
    "aaa": true,
    "aab": false,
    "aac": false,
    "aad": true,
    [...]
};

Espero que esto sea lo que quisiste decir, porque es la sintaxis básica de Javascript.

Además, si por alguna razón desea "almacenar" objetos simples (hechos de cadenas, números, booleanos, matrices u objetos de las entidades anteriores) en cadenas, puede considerar JSON:

var myDictJSON = '{\
    "aaa": true,\
    "aab": false,\
    "aac": false,\
    "aad": true,\
    [...]
}';
var myDict = JSON.parse(myDictJSON);

Apoyo a JSON es nativo para todos los principales navegadores, incluido IE desde la versión 8. Para los demás, existe esta biblioteca común json2.js que hace el truco.

También puede convertir sus objetos simples en cadenas usando JSON.stringify.

Respondido el 12 de junio de 12 a las 22:06

Gracias. Estaba agregando \ al final de cada línea, y eso es lo que estaba rompiendo mi código. - iliaden

eso es fácil-

var myDict={
  "aaa":true,
  "aab":false,
  "aac":false,
  "aad":true
};

por favor recuerde, no coloque el corchete en la siguiente línea.

me gustan las respuestas Por favor responde

Respondido el 12 de junio de 12 a las 22:06

Esto (una estructura de datos compleja que contiene tanto "cadena" como "booleanos"):

var myDict={"aaa":true,"aab":false,"aac":false,"aad":true, [...] };

Se puede expresar así:

var myDict={
  "aaa":true,
  "aab":false,
  "aac":false,
  "aad":true, 
  [...] 
};

Del mismo modo, esto:

  var myBigHairyString = "Supercalifragilsticexpialidocious";

Se puede expresar así:

  var myBigHairyString = 
    "Super" +
    "califragilstic" +
    "expialidocious";

Respondido el 12 de junio de 12 a las 22:06

La división de cadenas como esa puede ser buena para la sangría del código, pero es más lenta porque las operaciones JS en las cadenas en realidad se ejecutan. - maxarte

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.