Checking whether any item in an array has a desired value for a key
Easy to clean up your second suggestion, at which point, I would prefer it.

has(key) {
    for (let i = 0, len = this._items.length; i &lt; len; i++) {
        if (key in this._items[i]) return true;        
    }
    return false;
}


Note I determinethis._items.length only once with this approach vs. on every iteration.

You may consider returning index position of found item (or found item itself) here to make this more useful, because presumably you are checking for this key because you want to access it somehow. The caller would need to be aware of potential falsey behavior of 0 vs. false or similar.  You also would probably want to rename the function at this point to something more meaningful like getIndexHavingKey() or getItemHavingKey()

Of course, this is essentially what Array.find() and Array.findIndex() do.  You would just need to implement your key check check in callback.  That might look something like this:

var search = { key: 'someKey' };
// define filter callback
var keyExistsFilter = function (element) {
    // here 'this' is search object passed via find or findIndex
    return (this.key in element);
}

// get item from array based on filter
var itemWithKey = this._items.find(keyExistsFilter, search);

// get item index from array based on filter
var itemIndexWithKey = this._items.findIndex(keyExistsFilter, search);