JQuery可替代classic for循环if not collection

JQuery alternative to classic for-loop if not collection

本文关键字:循环 if not collection for classic JQuery      更新时间:2023-09-26

如果我想在不是集合的东西上循环,我可以在JavaScript中使用for循环。因此,提醒天数0-9:

var days = 10;
for(var i = 0; i < days; i++)
   alert(i);

但是JQuery做这样一个for循环的方式是什么(假设我不能使用$each,因为它不是一个集合)?

这很糟糕,但 $.each方式:

var days = 10;
$.each(new Array(days), function(i, _) {
    alert(i);
});

对于关键字方式:

(function(iter) {
    for (var i = 0; i < days; ++i) {
        iter(i);
    }
})(function(i) {
    alert(i);
});

自定义jQuery插件$.循环方式:

;(function($) {
    $.loop = function(num, iter) {
        for (var i = 0; i < num; ++i) {
            iter(i);
        }
    };
})(jQuery);

$.roop在您的情况下的用法:

var days = 10;
$.loop(days, function(i) {
    alert(i);
});

性能测试表明,$.each比其他慢,但对于解决99%的问题来说,这无关紧要。

在您的情况下,单线方式是:

$.loop(days, alert);

或者:

$.each(new Array(days), alert);

jQuery.each运行良好的

$.each([ 52, 97 ], function( index, value ) {
    alert( index + ": " + value );
});

但老实说,香草JavaScript对于您所要求的来说要好得多