Throwing StopIteration in array extras to stop the iteration

Brandon Benvie bbenvie at mozilla.com
Sun Mar 3 18:38:37 PST 2013


I was going to say...

indexOf with a callback is the best thing since sliced bread.

On Mar 3, 2013, at 5:26 PM, Rick Waldron <waldron.rick at gmail.com> wrote:

> 
> 
> 
> On Sun, Mar 3, 2013 at 5:33 PM, Brendan Eich <brendan at mozilla.com> wrote:
>> Bjoern Hoehrmann wrote:
>>> * David Bruant wrote:
>>>> I've found myself multiple times in a situation where I needed the index
>>>> of the first element responding to some conditions. I solved it the
>>>> following way:
>>>> 
>>>>      var index;
>>>>      array.some(function(e, i){
>>>>          if(someCondition(e)){
>>>>              index = i;
>>>>              return false;
>>>>          }
>>>> 
>>>>          return true;
>>>>      })
>>> 
>>> It's usually a bad idea to trigger side-effects from such callbacks. The
>>> proper solution here would be having a suitable method available, like
>>> 
>>>    var index = array.findIndex(someCondition);
>>> 
>>> as it is called in Haskell and C#.
>> 
>> Hi Bjoern, findIndex is indeed a missing Array generic. I'll see if we can get it on the agenda for the next TC39 meeting (coming up quickly, mid-March). Thanks,
> 
> Despite my previous message with a solution that relied on array.reduce(...), the benefit of stopping the iteration (once the predicate returns true) is objectively compelling. 
> 
> Rick
>  
>> 
>> /be
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130303/0ab11787/attachment.html>


More information about the es-discuss mailing list