2011-08-15 29 views
1

JavaScriptを使用してハッシュテーブルとハッシュ関数を実装する必要があります。フラッシュカードプログラムのJavaScriptで効率的なハッシュテーブルとハッシュ関数を書く

目的は、フランス語を学習するためのFLASHCARDプログラムを実装することです。

今のところ、それぞれのアイテムについて、1)英語の単語、2)フランス語の単語、3)フランス語のフレーズの例、4)フランス語から英語への翻訳。

今後、画像やその他のものも考慮する必要があります。

 
var words = [['être', 'to be', 'Je suis professeur d’anglais', 'I am a English Teacher'], [, , , ], ...]; 

は、私はこのような機能を考えていた:ハッシュテーブルのため、今の私の考えについては

は次のとおりです。

 
var flashcards = (function() { 
    var words = [['être','to be','Je suis professeur d’anglais','I am a English Teacher'],[,,,]]; 

    return function (n) { 
     return words[n]; 
    }; 
}()); 
alert(flashcards(0)); // 'être, ....' 

、ハッシュテーブル内の要素を見つけるための効率的な方法を私にこのコード に関するご提案を与えると、上記のすべてしてください。

+4

使用無地のJavaScriptオブジェクトをそれからちょうどそのオブジェクトの配列を作ります。 –

+1

それはまったくハッシュテーブルではありません... – Pointy

答えて

1

まず、ハッシュテーブルとは関係ありません。それはちょうど2次元配列です:)そこにハッシングはありません、あなたはどちらも必要ありません。

名前でプロパティにアクセスできるように、フラッシュカード用のオブジェクトを作成する方がよいと思います。

function FlashCard(){ 
    this.e_word = this.f_word = this.e_phrase = this.f_phrase = ''; 
    if(arguments[0]) 
     this.e_word = arguments[0]; 
    if(arguments[1]) 
     this.f_word = arguments[1]; 
    if(arguments[2]) 
     this.e_phrase = arguments[2]; 
    if(arguments[3]) 
     this.f_phrase = arguments[3]; 
} 

var flash_cards = [ 
    new FlashCard('to be', 'être', 'I am an English Teacher', 'Je suis un professeur d’anglais'), 
    new FlashCard('to have', 'avoir', 'I have three brothers', 'J\'ai trois frères'), 
    new FlashCard('to want', 'vouloir', 'She wants to play soccer', 'Elle veut jouer au soccer') 
]; 

function random_card(){ 
    return flash_cards[Math.floor(Math.random()*flash_cards.length)]; 
} 

var card = random_card(); 
alert(card.e_word+': '+card.f_word); 

あなたが始める必要があります:JSFiddle

+0

オブジェクトリテラルとしてのフラッシュカードの宣言ははるかに明確です。 [JSFiddleの例](http://jsfiddle.net/mfDN4/1/) –

関連する問題