我使用Javascript哈希对象来存储一组数字计数器,其设置如下:[这大大简化了]:

var myHash = {
    A: 0,
    B: 0,
    C: 0
};


有没有办法使其他键(未在myHash中明确显示)映射到那些键?例如,我想要[再次简化]:

myHash['A_prime']++; // or myHash.A_prime++;


完全等同于

myHash['A']++; // or myHash.A++;


例如增加在键A而不是A_prime处找到的值。

最佳答案

假设此哈希中没有任何有效的字符串值,则可以在哈希自身中创建自己的键到其他键的映射,并将键/值对包装在自己的函数中,如下所示:

var hash = {
    A: 0,
    B: 0,
    C: 0,
    A_asdf: 'A',
    B_asdf: 'B',
    A_another: 'A'
}

function increment(key)
{
    // iteratively find the real key
    while (typeof(hash[key]) == 'string')
    {
        key = hash[key];
    }
    hash[key]++;
}

关于javascript - 将多个键映射到Javascript哈希中的相同值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2511495/

10-10 00:13