seamless-immutable.development.js
function without(remove) {
    // Calling .without() with no arguments is a no-op. Don't bother cloning.
    if (typeof remove === "undefined" && arguments.length === 0) {
      return this;
    }

    if (typeof remove !== "function") {
      // If we weren't given an array, use the arguments list.
      var keysToRemoveArray = (Array.isArray(remove)) ?
         remove.slice() : Array.prototype.slice.call(arguments);

      // Convert numeric keys to strings since that's how they'll
      // come from the enumeration of the object.
      keysToRemoveArray.forEach(function(el, idx, arr) {
        if(typeof(el) === "number") {
          arr[idx] = el.toString();
        }
      });

      remove = function(val, key) {
        return keysToRemoveArray.indexOf(key) !== -1;
      };
    }

    var result = instantiateEmptyObject(this);

    for (var key in this) {
      if (this.hasOwnProperty(key) && remove(this[key], key) === false) {
        result[key] = this[key];
      }
    }

    return makeImmutableObject(result);
  }
function without(remove) {
    // Calling .without() with no arguments is a no-op. Don't bother cloning.
    if (typeof remove === "undefined" && arguments.length === 0) {
      return this;
    }

    if (typeof remove !== "function") {
      // If we weren't given an array, use the arguments list.
      var keysToRemoveArray = (Array.isArray(remove)) ?
         remove.slice() : Array.prototype.slice.call(arguments);

      // Convert numeric keys to strings since that's how they'll
      // come from the enumeration of the object.
      keysToRemoveArray.forEach(function(el, idx, arr) {
        if(typeof(el) === "number") {
          arr[idx] = el.toString();
        }
      });

      remove = function(val, key) {
        return keysToRemoveArray.indexOf(key) !== -1;
      };
    }

    var result = instantiateEmptyObject(this);

    for (var key in this) {
      if (this.hasOwnProperty(key) && remove(this[key], key) === false) {
        result[key] = this[key];
      }
    }

    return makeImmutableObject(result);
  }
function without ( remove ) { // Calling .without() with no arguments is a no-op. Don't bother cloning. if ( typeof remove === "undefined" && arguments . length === 0 ) { return this ; } if ( typeof remove !== "function" ) { // If we weren't given an array, use the arguments list. var keysToRemoveArray = ( Array . isArray ( remove ) ) ? remove . slice ( ) : Array . prototype . slice . call ( arguments ) ; // Convert numeric keys to strings since that's how they'll // come from the enumeration of the object. keysToRemoveArray . forEach ( function ( el , idx , arr ) { if ( typeof ( el ) === "number" ) { arr [ idx ] = el . toString ( ) ; } } ) ; remove = function ( val , key ) { return keysToRemoveArray . indexOf ( key ) !== - 1 ; } ; } var result = instantiateEmptyObject ( this ) ; for ( var key in this ) { if ( this . hasOwnProperty ( key ) && remove ( this [ key ] , key ) === false ) { result [ key ] = this [ key ] ; } } return makeImmutableObject ( result ) ; }
Returns an Immutable copy of the object without the given keys included.

@param {array} keysToRemove - A list of strings representing the keys to exclude in the return value. Instead of providing a single array, this method can also be called by passing multiple strings as separate arguments.
Returns an Immutable copy of the object without the given keys included .