Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript Click事件将多个副本推送到数组

Javascript Click事件将多个副本推送到数组
EN

Stack Overflow用户
提问于 2017-12-11 18:32:25
回答 2查看 196关注 0票数 0

在重新创建Simon游戏时,我尝试将一个单击事件推送到一个数组,然后立即在嵌套函数中测试该数组。在第一次传递时,它似乎起作用了。

但是,在第三次运行时,数组似乎没有清除。

下面的屏幕截图还显示,每个输入都会多次打印到控制台。

完整的代码笔在这里- https://codepen.io/jhc1982/pen/NwQZRw?editors=1010

快速示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function userMoves() {
  var userInput = [];

document.getElementById("red").addEventListener("click", function(){
  userInput.push("red");
  testington();
}); 

$(".red").mousedown(function(event){
  redAudio.play();
  $(".red").css("background-color", "red");
});

$(".red").mouseup(function(){
  $(".red").css("background-color", "#990000");
});

function testington(){
 if (userInput.length == pattern.length) {
   for (var i = 0; i < userInput.length; i++) {
     if (userInput[i] !== pattern[i]) {
         alert("Game Over");
     } else if (i === userInput.length -1 && userInput[i] === pattern[i]) {
        userInput = emptyArr;
        simonMoves();
        console.log("user input is ",userInput);
     } else {
       continue;
    }
   }    
  } 
 }
}

我确信这是非常明显的事情,但已经被卡住了几个小时。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-11 18:42:58

我认为问题可能在于您在每次执行userMoves时都会分配单击事件。这意味着每次调用函数时,事件都会被添加到元素中,因此在两次调用userMoves()之后,当您单击red时,事件将执行两次,在三次调用之后,它将执行三次,依此类推。

添加事件侦听器的代码应该在userMoves函数之外。testington函数也应该在userMoves之外,这将变得更简单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function userMoves() {
    $("#score-text").text(level);
    userInput = [];
}

这是一个有工作代码的钢笔:https://codepen.io/anon/pen/ppzqyY

票数 1
EN

Stack Overflow用户

发布于 2017-12-11 18:54:40

您需要在alert("Game over");之后添加break;关键字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function testington(){
 if (userInput.length == pattern.length) {
  for (var i = 0; i < userInput.length; i++) {
   if (userInput[i] !== pattern[i]) {
    alert("Game Over");

    break; // Break the loop

   } else if (i === userInput.length -1 && userInput[i] === pattern[i]) {
    userInput = emptyArr;
    simonMoves();
    console.log("user input is ",userInput);
   } else {
     continue;
   }
  }    
 } 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47759172

复制
相关文章
Linux下多线程程序为什么消耗大量虚拟内存
最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧合,为了证明我的观点,首先,我使用了valgrind。
Debian中国
2018/12/20
2.1K0
减少Redis内存消耗的优化措施
当命令请求被执行时,Redis会将数据从磁盘加载到内存中进行处理,这会导致内存的消耗。
一凡sir
2023/09/27
4900
减少Redis内存消耗的优化措施
使用top命令查看最消耗CPU和最消耗内存的进程
在终端执行top命令后,  在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况: 快捷键shift + p  : 将进程按照CPU占用从大到小排序。  快捷键shift + m  : 将进程按照内存占用从大到小排序。
joshua317
2018/04/16
1.9K0
如何降低 Python 的内存消耗量?
在执行程序时,如果内存中有大量活动的对象,就可能出现内存问题,尤其是在可用内存总量有限的情况下。在本文中,我们将讨论缩小对象的方法,大幅减少Python所需的内存。
Python猫
2019/08/08
1.6K0
如何降低 Python 的内存消耗量?
Oracle进程内存结构-如何察看Oracle进程消耗的内存
经常有人问到如何在Unix下确定进程消耗的内存资源,以及为何Top工具的显示非常高。 有人说Top的输出不精确,这种说法是不确切的。实际上是Top输出显示的Oracle进程内存使用,包含了SGA部分。这也是SGA的意义所在。 SGA可以被共享,可以被所有进程所访问,在进程的寻址空间里就包含了SGA的大小。
数据和云01
2018/09/10
3.4K0
Linux进程内存消耗指标解读
物理内存:不解释 虚拟内存:进程独享,由操作系统通过地址映射的方式,转换为对物理内存的访问。在32位Linux机器上,每个进程的虚拟内存都是4G。(这里的虚拟内存与操作系统使用中过程常见的虚拟内存概念不同,不要混淆了,如Linux中swap)
十毛
2019/03/27
6.1K0
pmap查看某进程所消耗的内存
[[Address: 内存开始地址]\ [Kbytes: 占用内存的字节数(KB)]\ [RSS: 保留内存的字节数(KB)]\ [Dirty: 脏页的字节数(包括共享和私有的)(KB)]\ [Mode: 内存的权限:read、write、execute、shared、private (写时复制)]\ [Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)]\ [Offset: 文件偏移]\ [Device: 设备名 (major:minor)]
明哥的运维笔记
2019/01/30
3.2K0
一文了解 Redis 内存监控和内存消耗
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。
程序员历小冰
2019/12/06
1.1K0
一文了解 Redis 内存监控和内存消耗
一文了解 Redis 内存监控和内存消耗
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。
程序员历小冰
2019/10/15
9270
一文了解 Redis 内存监控和内存消耗
MySQL内存到底消耗在哪里?
一说起MySQL使用的内存,你可能会想到各种buffer,最著名的莫过于innodb buffer pool了,它是内存使用的大户,还有sort buffer等等。除了这些buffer之外,可能还有一些细枝末节,今天我们来总结一下。
AsiaYe
2021/12/04
3K0
Percona Server 5.1 内存过量消耗分析
一次巡检过程中发现数据库使用内存有些过量,innodb_buffer_pool_size 设置值为 20G ,但实际物理内存消耗为 37G ,总虚拟内存消耗达 42G ,直接导致监控报警,于是开启了一次内存使用探究之旅,整理出来和大家分享一下
franket
2022/07/09
5320
一文了解 Redis 内存监控和内存消耗
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。
Bug开发工程师
2019/11/12
1.3K0
如何测量Ceph OSD内存占用
这个工具我第一次看到是在填坑群里面看到,是由研发-北京-蓝星同学分享的,看到比较有趣,就写一篇相关的记录下用法
用户2772802
2018/08/06
1.8K0
如何测量Ceph OSD内存占用
Percona Server 5.1 内存过量消耗分析6
由于它并不能动态进行调整,所以必须安排一次数据库的启停,在配置文件中对 innodb_ibuf_max_size 进行限定就可以有效解决此问题
franket
2022/07/09
6050
MySQL一次大量内存消耗的跟踪
线上使用MySQL8.0.25的数据库,通过监控发现数据库在查询一个视图(80张表的union all)时内存和cpu均明显上升。
GreatSQL社区
2023/08/11
2580
MySQL一次大量内存消耗的跟踪
Percona Server 5.1 内存过量消耗分析1
分析问题初步推断有两种情况:参数配置不当内存泄漏关于参数配置不当,我分析完各种buffer,cache参数配置后没有发现异常或特别严重的错误,于是尝试从内存泄漏的角度来寻找突破口----分析工具pmap : 用来生成一个进程的内存使用报表The pmap command reports the memory map of a process or processes.pt-config-diff : 用来比较Mysql 配置文件的差异pt-config-diff diffs MySQL configurat
franket
2022/07/09
6140
实用脚本:检查高 CPU / 内存消耗进程
该脚本将显示进程 ID、进程的所有者、进程的名称以及进程的运行时间。这将帮助你确定哪些(必须事先完成)作业正在超时运行。这可以使用 ps 命令来实现。
用户8639654
2021/09/16
1.4K0
Percona Server 5.1 内存过量消耗分析4
由于 innodb_buffer_pool_size 和 query_cache_size 都是我手动配置的,所以这个差异报告让我立刻注意到了 innodb_ibuf_max_size
franket
2022/07/09
4910
对线面试官-Redis(内存消耗的问题)
面试官:Hi,上次我们聊到了Redis作为缓存的数据一致性问题,这次我们继续聊一聊Redis作为缓存的问题之内存消耗问题?
@派大星
2023/06/28
1840
对线面试官-Redis(内存消耗的问题)
Percona Server 5.1 内存过量消耗分析2
对这个报表作一个排序,会获得更多信息[root@abc ~]# pmap -x 14769 | sort -nk 2 ---------------- ------ ------ ------14769: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/abc.err --open-files-limit=8192 --pid-file=/var/lib
franket
2022/07/09
4980

相似问题

测量CPU/内存消耗

13

测量make run的内存消耗

10

线程内存消耗

14

测量顶级内存消耗(linux程序)

21

如何测量webview消耗的内存量?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文