【发布时间】:2019-11-28 12:45:14
【问题描述】:
我开始学习 Javascript 中的算法,并在其上发现了一个奇怪的结构,称为 hashtable,在底层无法理解。
function findSumBetter(arr, weight) {
var hashtable = {};
for (var i = 0; i < arr.length; i++) {
var currentElement = arr[i],
difference = weight - currentElement;
if (hashtable[currentElement] != undefined) {
return [i, hashtable[currentElement]];
} else {
hashtable[difference] = i;
}
}
return -1;
}
console.log(findSumBetter([1,2,3,4,5], 9)); // [4, 3]
【问题讨论】:
-
谁能解释一下这三件事对对象有什么作用? hashTable[currentElement] , [i, hashtable[currentElement]], hashtable[difference] = i
-
查看使用对象developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/… 的概述,注意
[]用于访问具有字符串值或变量的属性的不同语法 -
在这种情况下,术语哈希表只不过是一个对象字面量
标签: javascript arrays hashtable