index.js
function has(obj, val) {
  val = arrayify(val);
  var len = val.length;

  if (isObject(obj)) {
    for (var key in obj) {
      if (val.indexOf(key) > -1) {
        return true;
      }
    }

    var keys = nativeKeys(obj);
    return has(keys, val);
  }

  if (Array.isArray(obj)) {
    var arr = obj;
    while (len--) {
      if (arr.indexOf(val[len]) > -1) {
        return true;
      }
    }
    return false;
  }

  throw new TypeError('expected an array or object.');
}
function has(obj, val) {
  val = arrayify(val);
  var len = val.length;

  if (isObject(obj)) {
    for (var key in obj) {
      if (val.indexOf(key) > -1) {
        return true;
      }
    }

    var keys = nativeKeys(obj);
    return has(keys, val);
  }

  if (Array.isArray(obj)) {
    var arr = obj;
    while (len--) {
      if (arr.indexOf(val[len]) > -1) {
        return true;
      }
    }
    return false;
  }

  throw new TypeError('expected an array or object.');
}
function has ( obj , val ) { val = arrayify ( val ) ; var len = val . length ; if ( isObject ( obj ) ) { for ( var key in obj ) { if ( val . indexOf ( key ) > - 1 ) { return true ; } } var keys = nativeKeys ( obj ) ; return has ( keys , val ) ; } if ( Array . isArray ( obj ) ) { var arr = obj ; while ( len -- ) { if ( arr . indexOf ( val [ len ] ) > - 1 ) { return true ; } } return false ; } throw new TypeError ( 'expected an array or object.' ) ; }
Returns true if an array has any of the given elements, or an
object has any of the given keys.

```js
has(['a', 'b', 'c'], 'c');
//=> true

has(['a', 'b', 'c'], ['c', 'z']);
//=> true

has({a: 'b', c: 'd'}, ['c', 'z']);
//=> true
```
@param {Object} `obj`
@param {String|Array} `val`
@return {Boolean}
Returns true if an array has any of the given elements or an object has any of the given keys .