Javascript动态数组无法正常工作

时间:2012-08-26 00:33:29

标签: javascript arrays dynamic letter

我目前正在为网站所有者设计一项功能,以跟踪他们网站上最常搜索/输入的内容。要做到这一点,我有一个基本的功能,记录按键被按下虽然我想将这些字母推入一个数组,所以它更容易管理,但我遇到一个问题,它只推送输入到数组中的最后一个键。我是编程新手,所以我的代码很简单:P

以下是带有故障动态数组的代码:

$(document).ready(function() {
   $(document).keyup(function(objEvent) {
        (objEvent) ? keyCode = objEvent.keyCode : keyCode = event.keyCode;
        varArray = [];
        varLetter = String.fromCharCode(keyCode);
        console.log(varLetter);
        varArray.push(varLetter);
        });
   });

提前致谢

-Alex

2 个答案:

答案 0 :(得分:3)

您正在按此行按键重置数组...

varArray = [];

答案 1 :(得分:0)

在事件处理程序之外声明并初始化数组,这样它就可以累积按键而不是每次都重置。您当前的代码是使用varArray = [];在每个按键上将数组设置为空。

你可以使用这样的东西,其中varArray被声明并初始化一次作为全局变量。我还将varLetter更改为局部变量,因为它仅在本地使用,并且不需要它是全局变量:

var varArray = [];
$(document).ready(function() {
   $(document).keyup(function(objEvent) {
        (objEvent) ? keyCode = objEvent.keyCode : keyCode = event.keyCode;
        var varLetter = String.fromCharCode(keyCode);
        console.log(varLetter);
        varArray.push(varLetter);
    });
});