Javascript 保持按下键的历史记录/顺序

Javascript 保持按下键的历史记录/顺序,javascript,arrays,sequence,Javascript,Arrays,Sequence,我有一个带有键盘组合的数组,这应该验证按数组示例的顺序完全按下键 var listkeys = ['left', 'right', 'bottom', 'top']; if(validate key){ continue } 数组的顺序很重要,如果按箭头的顺序按错了,那么我继续往下说,并向您发送了一个错误 我是javascript的新手,我希望我能帮上大忙,非常感激。通常,我不会回复那些要求“一刀切”解决方案的帖子,但我写了出来,不想浪费。这里有一些小东西可以让你开始 // Vali

我有一个带有键盘组合的数组,这应该验证按数组示例的顺序完全按下键

var listkeys = ['left', 'right', 'bottom', 'top'];

if(validate key){
    continue
}
数组的顺序很重要,如果按箭头的顺序按错了,那么我继续往下说,并向您发送了一个错误


我是javascript的新手,我希望我能帮上大忙,非常感激。通常,我不会回复那些要求“一刀切”解决方案的帖子,但我写了出来,不想浪费。这里有一些小东西可以让你开始

// Valid combination of keys
var valid_combo = ['left', 'right', 'bottom', 'top']; 

// Stack that stores the last 4 key inputs, including non-arrow keys
var history = [];  

// Maps arrow key direction strings to char code
var keys = []; 

keys[37] = 'left';
keys[38] = 'top';
keys[39] = 'right';
keys[40] = 'bottom';

$(window).keyup(function(e) {

    var key = e.which;

    if (key >= 37 && key <= 40) 
    {
        history.push(keys[key]);
    }
    else
    {
        history.push("derp");
    }

    if (history.length > 4) history.shift();

    // Array equality using Option 1 - http://stackoverflow.com/a/10316616/773702
    if (JSON.stringify(valid_combo) == JSON.stringify(history)) 
    {
        console.log("Valid key combination");
    }
});
//键的有效组合
var valid_combo=[“左”、“右”、“下”、“上”];
//存储最后4个键输入(包括非箭头键)的堆栈
var历史=[];
//将箭头键方向字符串映射到字符代码
var键=[];
键[37]=“左”;
键[38]=“顶部”;
键[39]=“右”;
键[40]=“底部”;
$(窗口).keyup(函数(e){
var-key=e.which;
如果(键>=37&&4)history.shift();
//使用选项1的数组相等性-http://stackoverflow.com/a/10316616/773702
if(JSON.stringify(有效的组合)=JSON.stringify(历史))
{
console.log(“有效密钥组合”);
}
});

我感谢你花时间编写代码,你是个天才!我们为这一麻烦表示歉意,因为如果您想在按下正确箭头时使用enter键进行验证,则可能会出现这种情况?请添加一个复选框,然后进行验证。:)干杯