UNPKG

omit-deep

Version:

Recursively omit the specified key or keys from an object.

42 lines (32 loc) 725 B
'use strict'; var isObject = require('is-plain-object'); var unset = require('unset-value'); module.exports = function omitDeep(value, keys) { if (typeof value === 'undefined') { return {}; } if (Array.isArray(value)) { for (var i = 0; i < value.length; i++) { value[i] = omitDeep(value[i], keys); } return value; } if (!isObject(value)) { return value; } if (typeof keys === 'string') { keys = [keys]; } if (!Array.isArray(keys)) { return value; } for (var j = 0; j < keys.length; j++) { unset(value, keys[j]); } for (var key in value) { if (value.hasOwnProperty(key)) { value[key] = omitDeep(value[key], keys); } } return value; };