Andrea Giammarchi wrote:
hacky but easy to solve reusing once a RegExp

var i = [1,2,3].some(function(v, i){
  return v === 2 && this.test(i);
}, /\d+/) && RegExp['$&'];

My Perl 4 _homage_, blechh.

Thanks, this will help sell findIndex to TC39 :-P.

/be

alert(i); // 1

no extra loop, no global anything, just an extra object needed, the RegExp, actually something you could create once in your closure and recycle every time you need.

br




On Sun, Mar 3, 2013 at 2:33 PM, Brendan Eich <[email protected] <mailto:[email protected]>> 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,

    /be

    _______________________________________________
    es-discuss mailing list
    [email protected] <mailto:[email protected]>
    https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to