确定JavaScript中是否存在值";“哈希表”;

确定JavaScript中是否存在值";“哈希表”;,javascript,arrays,object,hash,Javascript,Arrays,Object,Hash,我已经构建了一个JavaScript对象,它可以作为哈希表使用 var hashTable = {}; 该表由手动生成的键值对组成。该表将用于根据表中的旧值或键生成新值 //hashTable['old_value'] = new_value; hashTable['115004568543'] = 115004567503; hashTable['115004545983'] = 360000857366; hashTable['115004723526'] = 360000865566;

我已经构建了一个JavaScript对象,它可以作为哈希表使用

var hashTable = {}; 
该表由手动生成的键值对组成。该表将用于根据表中的旧值或键生成新值

//hashTable['old_value'] = new_value;
hashTable['115004568543'] = 115004567503;
hashTable['115004545983'] = 360000857366;
hashTable['115004723526'] = 360000865566;
hashTable['115004723646'] = 360000865566;
我还有另一个变量,它与哈希表中的键进行比较。如果它与哈希表中的键匹配,则可以使用它捕获映射到它的新值

例如,假设声明了某个_值

some_value = '115004568543';
因为它与哈希表中的键值(或旧的_值)匹配,所以我可以通过调用

var new_value = hashTable[some_value];
// new_value is going to be equal to 115004567503 due to the mapping above
我的问题是,我有两个不同的哈希表,“some_value”被比较。我想看看散列中的第一个值是否存在于第一个散列表或第二个散列表中。因此,我一直致力于:

var hashTable = {};
hashTable['115004568543'] = 115004567503;
hashTable['115004545983'] = 360000857366;

var hashTable2 = {};
hashTable2['115004702483'] = 360000857366;
hashTable2['115004560766'] = 360000857366;

var some_value = '115004545983';

if (hashTable.includes(some_value)) {
    var new_value = hashTable[some_value];
    //Do some other stuff with new_value
}

else if (hashTableTwo.includes(some_value)) {
    var new_value = hashTableTwo[some_value];
    //Do some other stuff with new_value
}
此外,某些_值将存在于第一个哈希表、第二个哈希表中,或者根本不存在。它不会多次存在

我的问题:我正在尝试使用hashTable.includes()查看两个哈希表中是否存在某个值。它不起作用了。确定某个_值是否为某个哈希表中的值的最佳方法是什么

当我尝试调用hashTable.includes(一些_值)时,我得到

Array.includes()
是一种数组方法。由于哈希表基于对象,因此不支持此方法

如果您的值不是falsy(false、undefined、null、0、NaN),则可以使用逻辑分配值:

var new_value = hashTable[some_value] || hashTableTwo[some_value] || some_value;
如果它们可能是虚假的,您可以使用检查它们是否存在于对象中:

if (some_value in hashTable) {
    var new_value = hashTable[some_value];
} else if (some_value in hashTableTwo) {
    var new_value = hashTableTwo[some_value];
    //Do some other stuff
}

确切地说,
哈希表是什么?我猜这是一个普通的对象,不是数组?(你还需要在
if
后面使用括号,否则你会得到一个
SyntaxError
)什么是
重定向
-如何“调用”
哈希表。includes
会产生
重定向的错误。includes
不存在?你的问题不清楚;确保澄清什么是哈希表,可能会显示一个实现示例如果您的
哈希表
是一个普通对象,您可以使用
哈希表中的一些值
请澄清“value”何时表示哈希表键的值,何时表示该键下的值。这很有效!非常感谢Ori Drori。我当然也学到了更多关于JS的知识,所以我真的很感激。
if (some_value in hashTable) {
    var new_value = hashTable[some_value];
} else if (some_value in hashTableTwo) {
    var new_value = hashTableTwo[some_value];
    //Do some other stuff
}