Javascript 使用jquery检测键盘中输入的按键模式

Javascript 使用jquery检测键盘中输入的按键模式,javascript,jquery,Javascript,Jquery,当访问者使用键盘在网站中按下密码时,我想将他们重定向到一个页面。键盘代码是“上下左右”。我已经写了代码。但它并没有完全发挥作用。因为它只检查是否按下了向上、向下、向左和向右箭头键。不是特定的模式。下面是代码 var map = {38: false, 38: false, 40: false, 40: false, 37: false, 39: false, 37: false, 39: false}; $(document).keyup(function(e)

当访问者使用键盘在网站中按下密码时,我想将他们重定向到一个页面。键盘代码是“上下左右”。我已经写了代码。但它并没有完全发挥作用。因为它只检查是否按下了向上、向下、向左和向右箭头键。不是特定的模式。下面是代码

var map = {38: false, 38: false, 40: false, 40: false, 37: false, 39: false, 37: false, 39: false};
        $(document).keyup(function(e) 
        {
            if (e.keyCode in map) {
                map[e.keyCode] = true;
                if (map[38] && map[38] && map[40] && map[40] && map[37] && map[39] && map[37] && map[39]) {
                    alert('You have pressed the patten up up down downn left right left right')
                }
            }
        }
        );

兄弟,您得到这种类型的输出是因为您在“Map”中添加了相同的键值对,您提供了“38:false,38:false”。这意味着提供了两次相同的键值和值,但一种类型只能提供一个键值。这意味着只有四个键值对存在,而不是8,这就是为什么它允许用户在单上下左右后使用。

你能帮我解决这个问题吗?另外,顺序不会保留在地图中等待几分钟,我正在尝试
var key = [38, 38, 40, 40, 37, 39, 37, 39],
    pos = 0;
$(document).keyup(function(e) {
    if (e.keyCode !== key[pos]) {
        pos = 0;
    } else {
        ++pos;
        if (pos >= key.length) {
            pos = 0;
            alert('You have pressed the patten up up down downn left right left right');
        }
    }
});