How to determine if Javascript array contains an object with an attribute that equals a given value?

后端 未结 25 1805
借酒劲吻你
借酒劲吻你 2020-11-22 08:17

I have an array like

vendors = [{
    Name: \'Magenic\',
    ID: \'ABC\'
  },
  {
    Name: \'Microsoft\',
    ID: \'DEF\'
  } // and so on... 
];
         


        
25条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-22 08:46

    2018 edit: This answer is from 2011, before browsers had widely supported array filtering methods and arrow functions. Have a look at CAFxX's answer.

    There is no "magic" way to check for something in an array without a loop. Even if you use some function, the function itself will use a loop. What you can do is break out of the loop as soon as you find what you're looking for to minimize computational time.

    var found = false;
    for(var i = 0; i < vendors.length; i++) {
        if (vendors[i].Name == 'Magenic') {
            found = true;
            break;
        }
    }
    

提交回复
热议问题