Javascript函数数组
Javascript function array
我想知道如何用函数创建一个数组,然后随机化一个并调用它。下面是我测试的一个例子。
functions = [f1(), f2(), f3(), f4()];
rand = functions[Math.floor(Math.random() * functions.length)];
$('p').click(function() {
rand[0]();
}
我搜索并尝试了多种假定的解决方案,但都不起作用(包括这一个:Javascript函数数组)。
使用函数引用创建数组,然后在点击处理程序中使用随机密钥生成
function log(func) {
$('#x').html(func)
}
function f1() {
log('f1')
}
function f2() {
log('f2')
}
function f3() {
log('f3')
}
function f4() {
log('f4')
}
functions = [f1, f2, f3, f4];
$('p').click(function() {
var rand = functions[Math.floor(Math.random() * functions.length)];
rand();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="x"></div>
<p>Click</p>
-
通过在函数名称(
f1()
)后添加()
,您有效地执行了函数。必须将函数的引用传递给数组,以便以后可以调用它。所以,functions = [f1(), f2(), f3(), f4()];
成为
functions = [f1, f2, f3, f4];
-
您似乎只计算了一次
rand
,因为它没有放在click
事件中。包括这个,rand = functions[Math.floor(Math.random() * functions.length)];
在事件处理程序中。
-
rand
不是数组。它包含一个函数的引用,可以通过调用它来调用,如下所示:rand();
您的完整代码以及一些添加内容在这里被篡改了:http://jsfiddle.net/sq623mrc/
相关文章:
- 数组函数不适用于从元素文本创建的JavaScript数组
- 如何在javascript中求解pack数组函数
- 制作一个javascript的数组函数
- 获取元素的位置并创建它的数组函数
- 茉莉花中的 SpyOn javascript 数组函数
- 自定义数组函数不接受参数
- 使用原型的自定义数组函数.新的 MyArray(1,2,3,4) 不工作
- Java 脚本随机化数组函数
- 在 Restangular 集合上使用 lodash 数组函数
- 比较数组函数返回未定义
- Javascript中嵌套for循环与数组函数的性能
- 多维数组函数在JS中不起作用
- Javascript数组函数有我看不到的错误
- 数组函数外的javascript
- 在数组/函数中循环时使用换行符
- 拼接javascript数组函数获胜't删除项目
- 为什么不'这个js数组函数不能工作
- 如何在我自己的数组原型函数中使用数组函数
- 在javascript中定义数组函数
- Jquery动态树数组函数