JS利用取余实现toggle多函数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload = function (){
    var button = document.getElementById(‘button‘);
    var onOff = 0;

    button.onclick = function (){
        toggle(
            [function (){
                alert(1);
            },
            function (){
                alert(2);
            },
            function (){
                alert(3);
            },
            function (){
                alert(4);
            }
            ]
        );
    }

    function toggle( fns ){
        /*
            接收一个数组形式的函数集合
            或者使用arguments形式接收参数
            根据onOff的索引调用对应的函数
            onOff自增
            onOff取余当前数组的长度(函数的个数)
            onOff等于当前数组的长度onOff归0
        */
        fns[onOff]();
        onOff++;
        onOff%=fns.length;
    }

}
</script>
</head>

<body>
<button id="button">toggle</button>
</body>
</html>
时间: 2024-09-30 20:55:24

JS利用取余实现toggle多函数的相关文章

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆

【分治】取余运算

问题 E: [分治]取余运算 时间限制: 1 Sec  内存限制: 128 MB提交: 16  解决: 6[提交][状态][讨论版] 题目描述 输入b,p,k的值,求bp mod k的值.其中b,p,k*k为长整型数. 输入 三个整数,分别为b,p,k的值 输出 bp mod k 样例输入 2 10 9 样例输出 2^10 mod 9=7 提示 解题思路:分治,顾名思义,把一个大问题分解为多个小问题. 这里有一个公式,利用这个公式通过递归求得. 代码: #include <iostream>

HDU1061_Rightmost Digit【快速幂取余】

Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33161    Accepted Submission(s): 12696 Problem Description Given a positive integer N, you should output the most right digit of

轻院 2180GJJ的日常之沉迷数学 逆元求除法取余

题目链接:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2180 题目大意:求数列 k0,k1,k2...kn的和,即等比数列的前n项和对1e9+7取余的结果. 解题思路:等比数列前N项和为 ,因此只要能够取余即可求得结果.利用扩展GCD求q-1关于mod的逆元然后快速幂取模计算即可. 代码: 1 const int inf = 0x3f3f3f3f; 2 const int maxn = 1e6 + 5; 3 int k, n; 4 5 vo

从C++和Python除法的区别谈谈求模(Modulus)和取余(Remainder)

今天发现一个很有意思的现象. 当做除法的时候,Python2和C++在负数的情况下会得到不同的整除结果: 当做-5 / 3的时候 C++的结果: -1 Python2的结果:-2 (请注意5 / -3的时候仍然会在C++中得到-1, Python2中得到-2) 可以看出C++在进行负数整除的时候执行的是直接舍去小数点后数字的操作,也就是返回和0比较接近的那个数字. 但在Python2中返回的则是小于等于商的最大整数,也就是返回和-∞更接近的数. 在做%操作的时候,依据的是这样的逻辑: a = b

k进制正整数的对k-1取余与按位取余

华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/8/24 先说一下结论 有k进制数abcd,有abcd%(k?1)=(a+b+c+d)%(k?1) 这是由于kn=((k?1)+1)n=∑ni=0Cin(k?1)i 因此kn 对(k-1)取余的话为1 比如10进制1425%9=3,(1+4+2+5)=12%9=3. 这个性质眼下我在两个地方见到了 (一)算法导论第11章讲散列表的时候,除法散列的时候 h(k)=kmod m 对于m的选取,若m取2p或者2p?1 均是不合适的选择,前者

加/减/乘/除 下的取余

x(负数) mod y(正数) = z 其中x<z<=0 , 且(z-x) mod y=0. 求法:z=x+abs(x)/y*y (这里的除法结果向下取整) 所以当求一个数经过各种计算后的取余,只需 ans=(ans+x*y)%yu ans=(ans-x*y)%yu ans=ans*x%yu 除法:用线性逆元 最后 ans=(ans+yu)%yu (要是之前有减法运算)

salesforce 零基础学习(四十三)运算取余

工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数. 习惯java的我毫不犹豫的写下了代码 public Boolean isDivisibility(Integer dividend,Integer divider) { return dividend % divider == 0; } 提交代码发现竟然提交不上?? 后来查看API发现apex中没有直接的%取余运算,所以如果想要取余以及判断是否整除需要其他方式,代码如下: public without sharing

汇编总结:无符号除法,有符号除法,取余,无符号乘法,有符号乘法

本文分为3个模块. 示例---该指令的示例 解释---为指令不好理解的地方 练习---为了更熟悉该指令 1.1 有符号除法指令及取余example: 在c语言里要完成 8 / 2的汇编指令如下: 在c语言里要完成 8 % 2的汇编指令如下: 4个字节的除法及取余运算示例如下: .section .text .global _start _start:     movl $8, %eax   #被除数是%edx:%eax 是这两个寄存器拼起来的%eax存放低位%edx存储高位     movl %