-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は、バージョン 8 以降の IE を含むすべての主要なブラウザーでネイティブです。その他のブラウザーについては、トリックを実行するこの共通ライブラリ 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 に答える