如何一次运行一次循环javascript

时间:2015-02-15 22:05:56

标签: javascript arrays loops

我对Javascript很陌生,我有一个问题似乎无法解决。我想从相同的输入文本字段获取用户输入,然后将它们放在一个数组中。第一个输入位于array[0]位置的array[1]位置,依此类推。我的设置如下,但我没有成功。

    <!DOCTYPE html>

    <html>
    <head>
    <title>Save Session</title>
    </head>

    <body>

    <form>
        <input type = "text" id = "testInput"></input>
        <input type = "button" value = "Make Array" onClick = "makeArray()">       </input>
        <input type = "button" value = "See Result" onClick = "seeResult()"></input>
    </form>

    <script type = "text/javascript">

        function makeArray(){

            var userInput = document.getElementById("testInput").value;

            sessionArray = [];

            for(i = 0; i < 5; i++){
                sessionArray[i] = userInput;
                break;
            }

            return sessionArray;
        }

        function seeResult(){

            alert(makeArray())
        }
    </script>
</body>

3 个答案:

答案 0 :(得分:1)

for循环不是这里应该使用的东西,因为你最终会得到5个相同的值。您可能希望用户能够提供5个不同的值(使用相同的输入),因此您必须确定何时添加这些值(在按钮单击或任何其他事件上)。

确定正确的事件后,您必须将输入值推送到全局数组变量中。如果要将数组限制为5个项目,请在推送任何值之前检查数组长度,以确保它的数量为&lt; 3&lt; 5。

请注意,我没有故意提供任何代码,因为您仍然需要学习一些编程基础知识...为您编写代码对您无能为力。

答案 1 :(得分:0)

我认为这就是你想要的。每次按下按钮,它都会获取输入的值并将其添加到sessionArray中,然后清除输入。

我还移动了您在函数外部选择输入的代码。现在只输入一次输入,而不是每次运行该输入。

<script type = "text/javascript">

   // Define vars
   var sessionArray = [];
   var inputEl = document.getElementById("testInput");

    function makeArray(){

        // Get input value
        inputValue = inputEl.value;

        // Add input value to array
        sessionArray.push(inputValue);

        // Empty input ready for next item
        inputEl.value = '';           
    }

    function seeResult(){

        alert(sessionArray)
    }
</script>

答案 2 :(得分:0)

jsfiddle demo

HTML

<input type = "text" id = "testInput"></input>
<input type = "button" value = "Add Array" onclick = "addArray();">       </input>
<input type = "button" value = "See Result" onclick = "seeResult();"></input>

JS

var result=[];
function addArray(){
    var userInput = document.getElementById("testInput").value;
    result.push(userInput);
    document.getElementById("testInput").value="";
}

function seeResult(){
    alert("the result  array contains: "+result+"\nResults will get removed");
    result=[];//empty result array
}