function difference(array) {
    var result = [];
    if (!array) {
      return result;
    }
    var index = -1,
        length = array.length,
        flattened = concat.apply(result, arguments),
        contains = cachedContains(flattened, length);

    while (++index < length) {
      if (!contains(array[index])) {
        result.push(array[index]);
      }
    }
    return result;
  }
Creates a new array of `array` elements not present in the other arrays
using strict equality for comparisons, i.e. `===`.

@static
@memberOf _
@category Arrays
@param {Array} array The array to process.
@param {Array} [array1, array2, ...] Arrays to check.
@returns {Array} Returns a new array of `array` elements not present in the
 other arrays.
@example

_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
// => [1, 3, 4]