/** * Checks all fields of an object literal for values. * @param {Object} object - A POJO. * @param {Array} omitProperies - An array of properties that you wish to omit from the checker e.g. "id". * @returns {Boolean} */ function isObjectDirty(object, omitProperties) { if(omitProperties) { object = _.omit(object, omitProperties); } return _.some(_.values(object), (value) => { if (_.isArray(value)) { return _.some(value, (item) => isObjectDirty(item, omitProperties)); } if (_.isPlainObject(value)) { return isObjectDirty(value, omitProperties); } return !!value }); }