Throwing StopIteration in array extras to stop the iteration

Rick Waldron waldron.rick at gmail.com
Sun Mar 3 18:49:53 PST 2013


On Sun, Mar 3, 2013 at 9:38 PM, Brandon Benvie <bbenvie at mozilla.com> wrote:

> I was going to say...
>
> indexOf with a callback is the best thing since sliced bread.
>

Is this +1 to findIndex?

I ask because:

var a = function() {}, array = [a];

array.indexOf(a); // 0


Rick



>
> 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/73683577/attachment-0001.html>


More information about the es-discuss mailing list