# Object
## _`Object`_.**`compact()`**
**Description:** Removes all fields that have empty values, i.e. are null or ""
**Syntax:** _`Object`_.compact()
**Returns:** Object
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'x':null, 'y':2, 'z':''}
obj.compact() //=> {'y':2}
```
## _`Object`_.**`hasField()`**
**Description:** Returns true if there is a field called name. Only checks top-level keys. Comparison is case-sensitive.
**Syntax:** _`Object`_.hasField(name)
**Returns:** Boolean
**Source:** Custom n8n functionality
**Parameters:**
* `name` (String) - The name of the key to search for
**Examples:**
```javascript
// obj = {'name':'Nathan', 'age':42}
obj.hasField('name') //=> true
```
```javascript
// obj = {'name':'Nathan', 'age':42}
obj.hasField('Name') //=> false
obj.hasField('inventedField') //=> false
```
## _`Object`_.**`isEmpty()`**
**Description:** Returns true if the Object has no keys (fields) set or is null
**Syntax:** _`Object`_.isEmpty()
**Returns:** Boolean
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name': 'Nathan'}
obj.isEmpty() //=> false
```
```javascript
// obj = {}
obj.isEmpty() //=> true
```
## _`Object`_.**`isNotEmpty()`**
**Description:** Returns true if the Object has at least one key (field) set
**Syntax:** _`Object`_.isNotEmpty()
**Returns:** Boolean
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name': 'Nathan'}
obj.isNotEmpty() //=> true
```
```javascript
// obj = {}
obj.isNotEmpty() //=> false
```
## _`Object`_.**`keepFieldsContaining()`**
**Description:** Removes any fields whose values don’t at least partly match the given value. Comparison is case-sensitive. Fields that aren’t strings will always be removed.
**Syntax:** _`Object`_.keepFieldsContaining(value)
**Returns:** Object
**Source:** Custom n8n functionality
**Parameters:**
* `value` (String) - The text that a value must contain in order to be kept
**Examples:**
```javascript
// obj = {'name': 'Mr Nathan', 'city':'hanoi', age: 42 }
obj.keepFieldsContaining('Nathan') //=> {'name': 'Mr Nathan'}
```
```javascript
// obj = {'name': 'Mr Nathan', 'city':'hanoi', age: 42 }
obj.keepFieldsContaining('nathan') //=> {}
obj.keepFieldsContaining('han') //=> {'name': 'Mr Nathan', 'city':'hanoi'}
```
## _`Object`_.**`keys()`**
**Description:** Returns an array with all the field names (keys) the object contains. The same as JavaScript’s Object.keys(obj).
**Syntax:** _`Object`_.keys()
**Returns:** Array
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name': 'Mr Nathan', age: 42 }
obj.keys() //=> ['name', 'age']
```
## _`Object`_.**`merge()`**
**Description:** Merges the two Objects into a single one. If a key (field name) exists in both Objects, the value from the first (base) Object is used.
**Syntax:** _`Object`_.merge(otherObject)
**Returns:** Object
**Source:** Custom n8n functionality
**Parameters:**
* `otherObject` (Object) - The Object to merge with the base Object.
**Examples:**
```javascript
// obj1 = {'name':'Nathan', 'age': 42}
// obj2 = {'name':'Jan', 'city': 'hanoi'}
obj1.merge(obj2) //=> {'name':'Jan', 'city': 'hanoi', 'age':42}
```
## _`Object`_.**`removeField()`**
**Description:** Removes a field from the Object. The same as JavaScript’s delete.
**Syntax:** _`Object`_.removeField(key)
**Returns:** Object
**Source:** Custom n8n functionality
**Parameters:**
* `key` (String) - The name of the field to remove
**Examples:**
```javascript
// obj = {'name':'Nathan', 'city':'hanoi'}
obj.removeField('name') //=> {'city':'hanoi'}
```
## _`Object`_.**`removeFieldsContaining()`**
**Description:** Removes keys (fields) whose values at least partly match the given value. Comparison is case-sensitive. Fields that aren’t strings are always kept.
**Syntax:** _`Object`_.removeFieldsContaining(value)
**Returns:** Object
**Source:** Custom n8n functionality
**Parameters:**
* `value` (String) - The text that a value must contain in order to be removed
**Examples:**
```javascript
// obj = {'name': 'Mr Nathan', 'city':'hanoi', age: 42}
obj.removeFieldsContaining('Nathan') //=> {'city':'hanoi', age: 42}
```
```javascript
// obj = {'name': 'Mr Nathan', 'city':'hanoi', age: 42}
obj.removeFieldsContaining('han') //=> {age: 42}
obj.removeFieldsContaining('nathan') //=> {'name': 'Mr Nathan', 'city':'hanoi', age: 42}
```
## _`Object`_.**`toJsonString()`**
**Description:** Converts the Object to a JSON string. Similar to JavaScript’s JSON.stringify().
**Syntax:** _`Object`_.toJsonString()
**Returns:** String
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name':'Nathan', age:42}
obj.toJsonString() //=> '{"name":"Nathan","age":42}'
```
## _`Object`_.**`urlEncode()`**
**Description:** Generates a URL parameter string from the Object’s keys and values. Only top-level keys are supported.
**Syntax:** _`Object`_.urlEncode()
**Returns:** String
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name':'Mr Nathan', 'city':'hanoi'}
obj.urlEncode() //=> 'name=Mr+Nathan&city=hanoi'
```
## _`Object`_.**`values()`**
**Description:** Returns an array with all the values of the fields the Object contains. The same as JavaScript’s Object.values(obj).
**Syntax:** _`Object`_.values()
**Returns:** Array
**Source:** Custom n8n functionality
**Examples:**
```javascript
// obj = {'name': 'Mr Nathan', age: 42 }
obj.values() //=> ['Mr Nathan', 42]
```