how to make jquery each a number

后端 未结 3 1121
南笙
南笙 2021-02-08 15:26

This is my code:

$.each(3, function(n) {
    alert(n);
});

I want to alert three times but it doesn\'t work. What can I do?

相关标签:
3条回答
  • 2021-02-08 15:33

    You can't.
    $.each can only iterate over arrays or objects. You're looking for the for loop:

    for(var n = 0; n < 5; n++) {
        alert(n);
    }
    
    0 讨论(0)
  • 2021-02-08 15:47

    each must operate on an object. Try to create an array of length 3, e.g.

    $.each(new Array(3),
           function(n){alert(n);}
    );
    

    Of course, I don't see the reason to avoid normal Javascript.

    for (var n = 0; n < 3; ++ n)
       alert(n);
    
    0 讨论(0)
  • 2021-02-08 15:50

    Late answer, but another option would be to prototype the Number with a method that would call a callback that many times.

    Number.prototype.loop = function(cb) {
        for (var i = 0; i < this; i++) {
            cb.call(this, i);
        }
        return this + 0;
    };
    

    Then call it like this:

    (3).loop(i => alert(i))
    

    However, it should be noted it is considered bad practice to modify standard prototypes like this. See the section on this MDN page called Bad practice: Extension of native prototypes.

    RightJS does something like this. (Others probably too.)

    0 讨论(0)
提交回复
热议问题