为抽认卡程序编写高效的哈希表和哈希函数
Writing efficient hash table and hash function in JavaScript for flashcard program
我需要使用JavaScript实现一个哈希表和哈希函数。
目标是实现一个学习法语的FLASHCARD程序。
现在,我想为每一项存储1)英语单词,2)法语单词,3)法语短语示例,4)法语到英语的翻译。
将来可能还需要考虑图像和其他东西。
目前我对哈希表的想法如下:
<>之前var words = [['être', 'to be', 'Je suis professor d ' anglais', '我是英语老师'],[,,,],…];之前我在想一个这样的函数。
<>之前Var flashcards = (function () {var words = [['être','to be','Je suis professor d ' anglais','我是英语老师'],[…]];返回函数(n) {返回单词[n];};} ());警报(抽认卡(0));//'être, ....'之前请给我你对这个代码的建议最重要的是,一个有效的方法来查找哈希表中的元素。
首先,这与哈希表无关。它只是一个二维数组:)这里没有哈希,你也不需要任何哈希。
我认为你最好为闪存卡创建一个对象,这样你就可以通过名称访问属性。然后创建一个对象数组:
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
相关文章:
- 如何在JavaScript中实现哈希表
- 用JavaScript中的循环传递哈希表/字典
- 将 Javascript 哈希表用于多个 If Thens
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 使用 JavaScript 中的对象的哈希表功能
- 用于 C# 的类似 V8 的哈希表
- 如何在 JavaScript 中动态创建哈希表
- 如何使用 Node.JS 在哈希表中为每个键存储多个值
- 如何在 JavaScript 中实现哈希表
- 在引擎盖下,是Javascript对象哈希表
- 在提交表单之前对客户端进行哈希密码哈希处理的简单方法
- 如何在java脚本中打印此哈希表数据
- 如何将 Python 字典转换为 JavaScript 哈希表
- 你如何观察 Knockout 中的 JavaScript 哈希表
- 已解决查询(关于哈希表)中的解决方案给了我 NaN
- 哈希表-给定密钥的哈希计算频率
- 与哈希表相比,通过循环访问数组中对象的Javascript优化
- 数组哈希表上的循环
- 访问哈希表中的元素
- 带有键/值的Javascript测试哈希表