javascript multiline dict声明

时间:2012-06-12 21:40:48

标签: javascript

我遇到了问题。我想要一个静态字典

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

有很多条目,我希望能够轻松访问所有条目,以防我需要更改其值。因此,我不喜欢单行声明。

作为替代方案,我确实设法执行以下操作,因为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();
    }   
}

是否有更好/更优雅的方式来获得dict的多行声明?

注意:Creating multiline strings in JavaScript仅适用于字符串。它不适用于字典。

编辑:我在每行的末尾添加了一个'\'。那就是问题所在。感谢。

3 个答案:

答案 0 :(得分:3)

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

我希望这就是你的意思,因为它是基本的Javascript语法。

另外,如果由于某些原因你想&#34;存储&#34;简单对象(由字符串,数字,布尔值,数组或上述实体的对象组成)成为字符串,你可以考虑JSON:

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

支持JSON对于所有主流浏览器都是原生的,包括自版本8以来的IE。对于其他浏览器,可以使用这个常见的库json2.js。

您还可以使用JSON.stringify将简单对象转换为字符串。

答案 1 :(得分:1)

这很容易 -

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

请记住,不要将花括号放在下一行。

我喜欢回复。请回复

答案 2 :(得分:0)

这(包含“string”和“booleans”的复杂数据结构):

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

可以这样表达:

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

同样,这:

  var myBigHairyString = "Supercalifragilsticexpialidocious";

可以这样表达:

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