Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • The irritating thing, to me, is that it does (sort of) do the right thing for Arrays, but not Array-alikes.

    For an array, for/in iterates over indices. Weird, but fine. It's a fair shorthand for a three-part for. The problem is with Array-like objects like, say, nodeList. A node list is supposed to act just like an Array, but for/in will iterate over a nodeList's attributes, not its elements. Argh! JS needs real iterators.
    --
    rjbs
    • Using a ruby-like for method could be the way forward?

      Array.prototype.foreach = function(fn) {
        var l = this.length;
        for (var i=0; i<l; i++) {
          fn(this[i])
        }
      }

      var arr=[1,2,3,4,5];

      arr.foreach(function(v) {
        print( v, ' squared is ', v*v, "\n")
      });

      You could give nodeList'd prototype a different method which does the right thing there. (Not that I've tested - actually, if nodeList is a native code object then adding a javascript prototype method might not do anything at

      --

      osfameron

  • The venerable Aristotle wrote about this recently in his blog [plasmasturm.org] where he demonstrates a lightweight iterator class.
    --

    broquaint out