我遇到了问题。我想要一个静态字典
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仅适用于字符串。它不适用于字典。
编辑:我在每行的末尾添加了一个'\'。那就是问题所在。感谢。
答案 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";