code: function extract (object, query) {
    var output = where(object, query)
    for (var prop in output) {
      delete object[prop]
    }
    return output
  }
docs: identical to `o.where(object, query)` with one exception - the found properties are removed from the input `object`
  @param {object} - The input object
  @param {string[]|function(*, string)} - Either an array of property names, or a function. The function is called with `(value, key)` and must return `true` to be included in the output.
  @returns {object}
  @static
  @example
  > object = { a: 1, b: 0, c: 2 }
  { a: 1, b: 0, c: 2 }
  > o.where(object, function(value, key){
  return value > 0
  })
  { a: 1, c: 2 }
  > object
  { b: 0 }
  @since 1.2.0