如何一次运行一次循环javascript

How to run a loop once at a time javascript

本文关键字:一次 循环 javascript 何一次 运行      更新时间:2023-11-24

我对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>

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

一旦确定了正确的事件,就必须在全局数组变量中推送输入值。如果您想将数组限制为5项,则在推送任何值之前检查数组长度,以确保其<5.

请注意,我没有故意提供任何代码,因为您还需要学习一些编程基础知识。。。为你写代码对你没有帮助

jsfiddle演示

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
}

我想这就是你想要的。每次按下按钮时,它都会获取输入值,并将其添加到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>