Javascript数组推送功能

时间:2014-10-18 23:05:46

标签: javascript arrays push

我在html中创建了一个表单,用于获取用户数据。然后我使用javascript将数据保存到数组中。以下是我的代码:

  function test(){
     var fName =  document.getElementById('myName').value;

       var test = ["dataOne"];
        test.push("dataTwo");
        test.push("dataThree");

        test.push(fName);
        }

问题: DataOne,dataTwo和dataThree保存在数组0,1,2中的以下索引处。现在,用户通过表单输入的数据将被保存到名为" fName"的变量中。然后该变量被推入数组。

当我将变量推入数组时,它保持在数组中的索引3处。每次用户输入一些数据时,数据都会保存在索引3中。我希望下一个数据保存在索引4和索引5,依此类推。每个用户提交都应该在新索引处。目前,如果用户提交表单,则数组将如下所示:

用户1:

[dataOne,dataTwo,dataThree,user1 input]

如果第二个用户提交表单:

用户2:

[dataOne,dataTwo,dataThree,user2 input]

user1输入已被用户2输入覆盖。

任何人都可以提供帮助。 提前致谢。

1 个答案:

答案 0 :(得分:1)

问题是每次调用函数时都要重新声明/覆盖数组。尝试这样的事情:

var test = ["dataOne"]; //\
test.push("dataTwo");   //>which equals var test = ["dataOne", "dataTwo", "dataThree"]
test.push("dataThree"); ///

function func(){
    var fName =  document.getElementById('myName').value;
    test.push(fName);
}

这样每个新函数都会调用另一个字符串到数组。

另请注意,我必须更改函数名称,因为并非所有内容都可以调用test(数组和函数)。