How about obsoleting indexOf, adding something better with a different name, and then building a contains method on top of that?
Peter On Thu, Feb 23, 2012 at 6:49 PM, Mark S. Miller <[email protected]> wrote: > My point is that if we bother to add any contains method, that it shouldn't > be broken the same way that indexOf is, making it an improvement over > indexOf both in looks and in functionality. In other words, do you want > > [3.0, NaN, 4.0].contains(NaN) > > to return false? I don't. I wish > > [3.0, NaN, 4.0].indexOf(NaN) > > didn't return -1, but it is now too late to fix that. > > <only a bit tongue in cheek> > Think this kind of stupidity isn't dangerous? Here's a riddle: Say a > JavaScript implementation, when asked to run the following program, instead > kills the user. Does it conform to the spec? > > [3.0, NaN, 4.0].sort(function compare(a, b) { return a < b ? -1 : a === > b ? 0 : 1; }) > > When sorting a valid packed array of valid IEEE floating point values, you > take your life in your hands. > </only a bit tongue in cheek> > > > > On Thu, Feb 23, 2012 at 6:18 PM, Peter Michaux <[email protected]> > wrote: >> >> On Thu, Feb 23, 2012 at 12:35 PM, Mark S. Miller <[email protected]> >> wrote: >> >> > if (arr.contains(foo)) { >> > >> > vs >> > >> > if (arr.indexOf(foo) !== -1) { >> >> The readability of the above two options is very different. The first >> option is far superior as it expresses what the programmer wants to >> know. The second options is an expression of how it can be >> accomplished and requires understanding of indexOf's return values. >> >> I think the addition Array.prototype.contains would be a good, simple >> one that would improve programs. The fact that this function exists in >> libraries means it is useful in a general in the opinion of at least >> several programmers. >> >> Peter > > > > > -- > Cheers, > --MarkM _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

