On Sep 3, 1:55 pm, Allen <bla...@gmail.com> wrote:
> Hi all,
>
> I was looking into some of the array methods and noticed this
> inconsistency.>>> [1].without("1");
> []
> >>> [1].intersect(["1"]);
>
> []
>
> Basically, without uses an == comparison, whereas intersect uses an
> === comparison. IMHO, I think == is more appropriate. As such, I have
> forked the prototype repo and modified intersect. You can view the
> diff here:
>
> http://github.com/blatyo/prototype/commit/8b9a7b721ef787110f85c03a28c...
>
> I also created a test to see how the two methods performed against
> each other. See that here:
>
> http://groups-beta.google.com/group/prototype-core/web/uniontest.tar.gz
>
> Here are some of the results I got in milliseconds (running on
> chromium):
> Testing New Intersect
> 4517
> 4614
> 4823
> 4998
> 4856
>
> Testing Old Intersect
> 7321
> 7337
> 7376
> 7353
> 7331
>
> Let me know what you guys think.

There's also `uniq`, which relies on `==`:

[1, 2, 3, '1'].uniq(); [1, 2, 3]

`without` actually relies on `include`, so it is `include` that would
need to be changed. I think I'd rather see `===` used instead of `==`
where possible, although there are probably cases when `==` is more
convenient.

Btw, `NaN` inequality to each other might be confusing in context of
`uniq`. It might be worth mentioning in the docs that `[NaN, NaN].uniq
()` results in the very same `[NaN, NaN]`.

--
kangax
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to 
prototype-core-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to