Javascript、基本的な連想配列

Vibol

私は単純な文字列を持っていて、それを配列に分割します:

var alphabet = "a,b,c,d,e";
var letters = alphabet.split(",");

var dict = [];
for ( var i = 0; i < letters.length; i++ ) {
    dict[ letters[i] ] = true;
}

私を困惑させるのは、私が

console.log(dict[letters[0]] +"|"+ dict["a"]);

私は得る

//true|undefined

文字[0]と「a」の違いがわかりません。そして、私は文字[0]と「a」が両方とも文字列のタイプであることを絶対に確信しています。

編集:変数「dict」を角かっこから中かっこに変更しようとしましたが、それでも未定義になります。

編集2:以下のコードは私が扱っているものです。「dictionary.txt」は、「\ n」で区切られた約9万語を含むテキストファイルです。このテキストファイルでは、文字「a」が最初の行にあります。

$.get( "tiles/dictionary.txt", function( txt ) {
// Get an array of all the words
var words = txt.split( "\n" );
// And add them as properties to the dictionary lookup
// This will allow for fast lookups later
for ( var i = 0; i < words.length; i++ ) {
    dict[ words[i] ] = true;
}
console.log(dict[words[0]]+"|"+dict["a"]);
});

単純化したバージョンを作成するのではなく、これから始めるべきだったのかもしれません。

マークリード

問題は、テキストファイルにキャリッジリターンがあることです。改行で分割は、("\n"配列の最初の要素ではないので)、キャリッジリターンを除去しない"a"けれども"a\r"コードを次のように変更すると、このフィドルの場合と同じように機能するはずです。

$.get("https://dl.dropboxusercontent.com/u/16966255/dictionary.txt",
      function(txt) {
        var words = txt.split("\r\n");
        var dict = {};
        for (var i = 0; i < words.length; i++) {
          dict[ words[i] ] = true;
        }
        alert(dict[words[0]]+"|"+dict["a"]);
      });

ファイルにキャリッジリターンを含める必要がある代わりに、次のように一致するかどうかに一致する正規表現で分割できます。

var words = txt.split(/\r?\n/);

ただし、はるかに大きなファイルを使用する場合は、正規表現を使用した分割は、定数文字列を使用した分割よりも著しく効率が悪いことに注意してください。

また、の初期化をdictから[]より標準{}に変更しましたが、それは問題ではありませんでした。配列は特定のタイプのオブジェクトであり、Javascriptのすべてのオブジェクトは実際には連想配列です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

連想配列-Javascript

分類Dev

PHPの基本的な連想配列。それらを埋める方法

分類Dev

javascriptの連想配列

分類Dev

ある値の基本的な連想配列で配列を選択する方法

分類Dev

奇妙な動作をするJavaScript連想配列

分類Dev

Javascript連想配列がAJAXPOSTで空になります

分類Dev

Javascript連想配列の省略形がIEで機能しない

分類Dev

Javascript:連想配列のループを理解していない

分類Dev

連想配列内の連想配列

分類Dev

JSONへのJavaScript連想配列

分類Dev

JavaScript連想配列の長さ

分類Dev

JavaScriptの多次元連想配列

分類Dev

javascriptの連想配列の難問

分類Dev

Javascript連想配列を整数に?

分類Dev

連想配列javascriptで値を検索

分類Dev

Java連想配列

分類Dev

連想配列phpmysql

分類Dev

Ruby連想配列?

分類Dev

分割連想配列

分類Dev

PHP連想配列の奇妙な動作

分類Dev

連想配列が連想ではないのに、なぜ連想配列と呼ばれるのですか?

分類Dev

javascriptで連想配列を値の単純な文字列配列に変換する方法

分類Dev

連想配列の違いがあるJavascript配列

分類Dev

単純な配列から連想配列を作成する

分類Dev

JavaScriptが正しい形式になるように、連想配列を非連想配列でラップします

分類Dev

Javascriptで変数名を使用してグローバル配列(連想配列ではない)を作成します

分類Dev

javascriptで2つの連想配列を持つ配列として1つの連想配列内に2つの異なる連想配列を配置します

分類Dev

連想配列とJava

分類Dev

Javaの連想配列

Related 関連記事

ホットタグ

アーカイブ