Han*_*com 3 javascript loops function
我有以下几次使用的循环:
for(var i = 0; i < $options.length; i++) { //...
Run Code Online (Sandbox Code Playgroud)
每次我想要使用该循环时,我不想重复使用该代码,而是将其转换为函数.
我尝试了以下但是得到一个错误"我是未定义的"
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
callback();
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
optionLoop($options, function(){
// Do it
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用.如何将循环转换为可重用的函数,我可以将其传递给另一个函数?还有一个问题......我是不是因为想要这样做而疯狂?
谢谢!
您应该将循环值传递给回调:
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
callback(i, $options[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当你调用它时,在你的回调函数中使用它们:
optionLoop($options, function(index, value) {
});
Run Code Online (Sandbox Code Playgroud)
这是小提琴:http://jsfiddle.net/vGHK5/
更新:如果您希望能够从函数中突破循环,请使用:
function optionLoop( $options, callback) {
for(var i = 0; i < $options.length; i++) {
if ( callback(i, $options[i]) === false ) break;
}
}
Run Code Online (Sandbox Code Playgroud)
false如果你想打破,那就回来吧.
这是小提琴:http://jsfiddle.net/vGHK5/1/
| 归档时间: |
|
| 查看次数: |
684 次 |
| 最近记录: |