通过JavaScript中的字典对象检查单词有效性 - 是否有更好的方法来引用/构造字典?

时间:2014-11-10 01:59:57

标签: javascript dictionary

我通过引用一个看起来像这样的对象来检查一个单词是否真实:

dictionary.js

var dictionary = {
   "apple" : "apple",
   "banana" : "banana",
   "orange" : "orange"
}

在JavaScript中,由于键,检查是“即时”(我忘记了数据存储中可以实现这一点的低级现象的名称)hash table)而不是循环遍历整个对象以找到匹配:

if (dictionary["apple"]){
    //word is valid
}

但令我困扰的是每个单词都列出两次,当时从不使用每个属性键的值。属性的键(名称)是唯一检查的,值是多余的。这让我感到困扰,因为一方面,编程中的冗余看起来很糟糕,而且这个字典数组还包含超过100,000个单词,并且这个对象必须加载到页面(页面加载时间)然后存储在内存中(正在使用的RAM)作为一个对象是必要大小的两倍。

我的第一个想法是删除值:

var dictionary = {
   "apple" : "",
   "banana" : "",
   "orange" : ""
}

但这看起来很奇怪。所以,我的问题是:

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

你可能想试试这个:

  function Dictionary()
  {
    this.apple = 
    this.banana = 
    this.orange = true;
  }

  var dictionary = new Dictionary();

  console.log(dictionary.apple);
  console.log(dictionary['banana']);
  console.log(dictionary['not an orange'])
  console.log(dictionary.notaword);

答案 1 :(得分:0)

你可以稍微瘦一点

var dictionary = {
   "apple" : true,
   "banana" : true,
   "orange" : true
}