this is by far the better option.

it's not IE's fault that you are trying to reference something that doesn't
exist. This isn't a bug in IE or MooTools.

On Mon, Dec 14, 2009 at 7:09 PM, Barry van Oudtshoorn <
[email protected]> wrote:

>  What about doing something like
>
> $each(arr, function(item) {
>   if (item && item.foo) item.foo();
> })
>
> It's more robust and will mean that you can start indexing your arrays from
> whatever you want.
>
>
> On 15/12/09 08:04, Roman Land wrote:
>
> Indeed this code would cause an issue for me, since the issue is not due to
> referencing of the nonexistent item, rather inside the loop I do something
> like:
>
> $each(arr, function(item, i) {
>    item.foo(); // this will throw an error on undefiled object and stop JS
> })
>
> My workaround by the way is to check weather i == 0 (this is a special
> array I use where I normally start at position 1).
>
> FF's implementation does actually jump over position 0 - starting at 1,
> that would be logical interpretation of "foreach" vs "for (i =0 ; i <
> smt.length ; i++)" - where I tell him to begin at position 0 explicitly.
>
> Cheers
> -- Roman
>
> On Tue, Dec 15, 2009 at 1:18 AM, Aaron Newton <[email protected]> wrote:
>
>> Here is the code for forEach, implemented into browsers that do not
>> implement it themselves:
>>
>>   forEach: function(fn, bind){
>>  for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i,
>> this);
>>  }
>>
>>  as you can see, it loops over each item and calls your function, passing
>> the array's value at i. This is undefined for your zero value. I don't know
>> where IE would freak out on this (though it doesn't surprise me that it
>> might). The code above references yourArray[index] that shouldn't throw an
>> error...
>>
>>  Aaron
>>
>> On Mon, Dec 14, 2009 at 12:31 PM, Roman Land <[email protected]>wrote:
>>
>>> Lolz on the kindly:)
>>>
>>> Paul, this site is meant to work on all browsers, I currently have a
>>> work around, this behavior is undesired despite it's roots being in ie
>>> implementation of foreach.
>>>
>>> Cheers, Roman
>>>
>>> On 14/12/2009, at 18:28, Paul Saukas <[email protected]> wrote:
>>>
>>>
>>> > Roman ,
>>> >
>>> >     I believe that is an IE issue . I have no problem running your
>>> > example on IE8 . It just kindly spits undefined out in place of the
>>> > missing element 0 if i have it display the items, If i do the keys
>>> > then IE shows 01234 and ff 1234. What version of IE are you using ?
>>>
>>
>>
>
>
> --
> ---
> "Make everything as simple as possible, but not simpler."
>
> - Albert Einstein
>
>
>
> --
> Not sent from my iPhone.
>
>

Reply via email to