Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在特定条件下尝试在事件后更新数组_Javascript_Jquery_Arrays_Logic - Fatal编程技术网

Javascript 在特定条件下尝试在事件后更新数组

Javascript 在特定条件下尝试在事件后更新数组,javascript,jquery,arrays,logic,Javascript,Jquery,Arrays,Logic,我一直有逻辑问题,我需要帮助解决这个问题。我总是会遇到这些类型的问题,我似乎无法在正确的位置设置变量,以获得正确的逻辑。基本上,我想在代码中看到的是,如果有人输入了错误的(加法)答案,然后单击go,你应该将问题和答案推到一个数组中。因此,在用户回答完一系列问题后,我可以得到数组中的问题和答案列表。如果我每次点击时都按这个问题,我会在数组中得到重复。所以我需要一个条件,比如如果最后一个是错误的,它不在数组中,只在数组中放一次。用户可以继续尝试回答,直到答对为止 我试图在全局范围内设置一个Error

我一直有逻辑问题,我需要帮助解决这个问题。我总是会遇到这些类型的问题,我似乎无法在正确的位置设置变量,以获得正确的逻辑。基本上,我想在代码中看到的是,如果有人输入了错误的(加法)答案,然后单击go,你应该将问题和答案推到一个数组中。因此,在用户回答完一系列问题后,我可以得到数组中的问题和答案列表。如果我每次点击时都按这个问题,我会在数组中得到重复。所以我需要一个条件,比如如果最后一个是错误的,它不在数组中,只在数组中放一次。用户可以继续尝试回答,直到答对为止

我试图在全局范围内设置一个
Error=0
,并在if-else语句中增加计数器+,检查计数器是否小于2,如果它小于2,这意味着计数器可能为1,这也意味着尝试了一个错误的答案,因此当我将信息推送到数组时,我将其重置为0,但事实并非如此很好,看起来错误永远是1

  $(document).ready( function(){

        var wrong = 0
        wrongQs = []
        clicked = false

         number1 = ~~(Math.random() * 10);
         number2 = ~~(Math.random() * 10);
        $(".numbers").children().remove()
        $(".numbers").html("<div>" + number1 +"</div><div>" + number2 + "</div>")

        $("button.go").on('click' , function(e){
            clicked = true
            console.log($(".input").val()," " ,(number1 + number2))
            //alert(+$(".input").val())
            if(+$(".input").val() == (number1 + number2)){
                 number1 = ~~(Math.random() * 10);
                 number2 = ~~(Math.random() * 10);
                $(".numbers").children().remove()
                $(".numbers").html("<div>" + number1 +"</div><div>" + number2 + "</div>")
            }else{
                wrong++
                if( wrong < 2){
                    wrongQs.push([number1, number2, number1+ number2])
                    console.log("WrongQs Array " , wrongQs)
                    wrong = 0
                }

            }
        })
    });
$(文档).ready(函数(){
var错误=0
错误qs=[]
单击=错误
number1=~~(Math.random()*10);
number2=~~(Math.random()*10);
$(“.numbers”).children().remove()
$(“.numbers”).html(“+number1+”“+number2+”)
$(“button.go”)。在('click',函数(e)上{
单击=真
console.log($(“.input”).val(),”,(number1+number2))
//警报(+$(“.input”).val()
if(+$(“.input”).val()==(number1+number2)){
number1=~~(Math.random()*10);
number2=~~(Math.random()*10);
$(“.numbers”).children().remove()
$(“.numbers”).html(“+number1+”“+number2+”)
}否则{
错++
如果(错误<2){
推送错误([number1,number2,number1+number2])
log(“错误的qs数组”,错误的qs)
错误=0
}
}
})
});
html:


我怎样才能成为一个更好的逻辑程序员?我在这方面已经做了将近2年了

这将是相当广泛的。不过,在用户离开最后一个问题或提交整个测试时,最好在测试结束时获取数据。我已经实现了一些非常类似的东西,如果你感兴趣的话,我可以和你分享最终的结果。如果你在js中实现了一些类似的东西,我很乐意看一看。也许会有帮助。谢谢你。我只是认为,对于这个问题,有一个简单的答案,就是设置正确的条件将数据推送到阵列中。当然,有很多简单的方法可以设置检查,以便在某些情况下只将数据推送到阵列中。但是,正如你所说,你的问题实际上是逻辑问题,而不是程序问题。因此,有很多变量需要考虑。例如,是否应该允许用户在提交测试之前返回并查看他们的答案,仅举一个例子。测试的设计将决定需要实现哪些逻辑。给我一些整理一个成品的例子,让你明白我的意思。看看下面的几个问题。单击末尾的submit按钮后,请查看控制台。您将看到一个数组,以您似乎需要的方式显示所有问题数据。如果你有任何问题,请随意使用,我随时为你服务。谢谢。我只是快速看了一下。明天我会再看一遍。看起来感兴趣的数组是questionInfo,当您单击submit按钮时。您将获得生成的数组。如果是这样的话,这将是有帮助的。我不想发送ajax请求。用户将能够回答无限的随机问题,然后单击一个按钮并查看数据(到目前为止他们错了)。希望这能给我一些想法,当我明天再试一次。谢谢你的帮助
    <div class="numbers"></div>
<input class = "input"> <button class="go">Go</button>