-1

我有一个问题。我想要一个静态字典

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的多行?

注意:在 JavaScript 中创建多行字符串是一种仅适用于字符串的解决方案。它不适用于字典。

编辑:我在每行的末尾添加了一个“\”。这就是问题所在。谢谢。

4

3 回答 3

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

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

此外,如果出于某些原因您想将简单对象(由字符串、数字、布尔值、数组或上述实体的对象组成)“存储”到字符串中,您可以考虑使用 JSON:

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

对所有主要浏览器的支持JSON都是本机的,包括 IE 自版本 8 以来。对于其他浏览器,有这个通用库 json2.js 可以解决问题。

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

于 2012-06-12T21:42:11.293 回答
1

这很容易-

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

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

我喜欢回应。请回答

于 2012-06-12T21:46:35.950 回答
0

这(包含“字符串”和“布尔值”的复杂数据结构):

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";
于 2012-06-12T21:45:52.433 回答