在哈希表上添加元素

时间:2020-07-28 05:29:57

标签: javascript node.js hashtable

我正在阅读Grokking算法,它为我提供了一个无法在Javascript上进行复制的哈希映射的示例。这很简单,我唯一不知道的是如何添加的值。 “已投票”变量上的ID

var canVote = function(id) {
  var voted = {};
  for(let i = 0; i < id.length; i++) {
    if(id in voted) {
      console.log("ID already voted!");
    } else {
      voted[id] = id;
      console.log("Voted successufully!")
    }
  }
}

var id = [10, 20, 20]
canVote(id);

1 个答案:

答案 0 :(得分:2)

哈希表的想法是查找O(1)中是否存在值。但是,如果您遍历n元素的数组,您显然将最终进行n常数操作,结果是O(n)

此外,您使用的逻辑在循环迭代中也有缺陷。我在下面的代码中对其进行了修改。请检查。

var canVote = function(id) {
    var voted = {};
    id.forEach(voteId=>{
        if(voted[voteId]){
            console.log("ID already voted!");
        }else{
            voted[voteId] = voteId;
            console.log("Voted successufully!")
        }
    })
}

var id = [10, 20, 20]
canVote(id);