Checking if any competitors have a non-empty name
Since ES5 (which all browsers support nowadays) is array.some(). It works in the same way as Lodash's/Underscore's _.some() but without the library.
If you target ES6, you can further trim your code using shorthand object methods and arrow functions. 
Your object.trim() can blow up if object.name is truthy but not a string. Do a typeof obj.name === 'string' instead of a truthy check. If it is always guaranteed to be a string, the truthy check is redundant since a trimmed empty string will always be empty.


So your code could be as simple as:

has_competitors(){
  return this.competitors.some(obj =&gt; obj.name.trim() !== '') 
}