Javascript 将循环定义为要重用的函数
我多次使用以下循环:Javascript 将循环定义为要重用的函数,javascript,function,loops,Javascript,Function,Loops,我多次使用以下循环: for(var i = 0; i < $options.length; i++) { //... 但这是行不通的。如何将一个循环转换为一个可重用函数,并将另一个函数传递给该函数?还有一个问题。。。我想这么做是不是疯了 谢谢 您是否正在尝试访问回调中的i?您可能希望将其传递给回调您应该将循环值传递给回调: function optionLoop( $options, callback) { for(var i = 0; i < $options.
for(var i = 0; i < $options.length; i++) { //...
但这是行不通的。如何将一个循环转换为一个可重用函数,并将另一个函数传递给该函数?还有一个问题。。。我想这么做是不是疯了
谢谢 您是否正在尝试访问回调中的
i
?您可能希望将其传递给回调
您应该将循环值传递给回调:
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
callback(i, $options[i]);
}
}
这是小提琴:
更新:如果您希望能够从函数中打破循环,请使用以下命令:
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
if ( callback(i, $options[i]) === false ) break;
}
}
函数选项loop($options,callback){
对于(变量i=0;i<$options.length;i++){
如果(回调(i,$options[i])==false)中断;
}
}
如果要中断,只需返回false
这是小提琴:太棒了,约瑟夫,谢谢你!在第二个代码段中,您传递给函数的“value”参数是什么?@j-man86-查看fiddle。它是位于
索引
位置的数组的值。这是JS自动解释的吗?i、 数组的内置变量?如果我想在函数内部使用“break”。。。是否应该更改为返回false@j-man86-您需要更改optionLoop()
函数来测试返回值:if(false==callback(i,$options[i]){break;}
。然后您可以从回调中返回false
,以停止循环。
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
callback(i, $options[i]);
}
}
optionLoop($options, function(index, value) {
});
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
if ( callback(i, $options[i]) === false ) break;
}
}