indexOf method in an object array?

前端 未结 27 3025
别跟我提以往
别跟我提以往 2020-11-22 02:18

What\'s the best method to get the index of an array which contains objects?

Imagine this scenario:

var hello = {
    hello: \'world\',
    foo: \'ba         


        
27条回答
  •  庸人自扰
    2020-11-22 02:30

    Brief

    myArray.indexOf('stevie','hello')
    

    Use Cases :

      /*****NORMAL****/  
    [2,4,5].indexOf(4) ;//OUTPUT 1
     /****COMPLEX*****/
     [{slm:2},{slm:4},{slm:5}].indexOf(4,'slm');//OUTPUT 1
     //OR
     [{slm:2},{slm:4},{slm:5}].indexOf(4,function(e,i){
       return e.slm;
    });//OUTPUT 1
    /***MORE Complex**/
    [{slm:{salat:2}},{slm:{salat:4}},{slm:{salat:5}}].indexOf(4,function(e,i){
       return e.slm.salat;
    });//OUTPUT 1
    

    API :

        Array.prototype.indexOfOld=Array.prototype.indexOf
    
        Array.prototype.indexOf=function(e,fn){
          if(!fn){return this.indexOfOld(e)}
          else{ 
           if(typeof fn ==='string'){var att=fn;fn=function(e){return e[att];}}
            return this.map(fn).indexOfOld(e);
          }
        };
    

提交回复
热议问题