---
title: "tinymce.util.Tools"
description: "This class contains various utility functions. These are also exposed directly on the tinymce namespace."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/apis/tinymce.util.tools/"
md_url: "https://www.tiny.cloud/docs/tinymce/latest/apis/tinymce.util.tools/index.md"
version: "latest"
last_updated: "2025-05-15T02:01:11Z"
tokens: 1896
---
# tinymce.util.Tools

This class contains various utility functions. These are also exposed directly on the tinymce namespace.

## Summary

### Methods

| Name | Summary | Defined by |
| --- | --- | --- |
| [each()](#each) | Performs an iteration of all items in a collection such as an object or array. This method will execute the callback function for each item in the collection, if the callback returns false the iteration will terminate. The callback has the following format: `cb(value, key_or_index)`. | `Tools` |
| [explode()](#explode) | Splits a string but removes the whitespace before and after each value. | `Tools` |
| [grep()](#grep) | Filters out items from the input array by calling the specified function for each item. If the function returns false the item will be excluded if it returns true it will be included. | `Tools` |
| [hasOwnProperty()](#hasOwnProperty) | JavaScript does not protect hasOwnProperty method, so it is possible to overwrite it. This is an object independent version. Checks if the input object `obj` has the property `prop`. | `Tools` |
| [inArray()](#inArray) | Returns an index of the item or -1 if item is not present in the array. | `Tools` |
| [is()](#is) | Checks if a object is of a specific type for example an array. | `Tools` |
| [isArray()](#isArray) | Returns true/false if the object is an array or not. | `Tools` |
| [makeMap()](#makeMap) | Makes a name/object map out of an array with names. | `Tools` |
| [map()](#map) | Creates a new array by the return value of each iteration function call. This enables you to convert one array list into another. | `Tools` |
| [resolve()](#resolve) | Resolves a string and returns the object from a specific structure. | `Tools` |
| [toArray()](#toArray) | Converts the specified object into a real JavaScript array. | `Tools` |
| [trim()](#trim) | Removes whitespace from the beginning and end of a string. | `Tools` |
| [walk()](#walk) | Executed the specified function for each item in a object tree. | `Tools` |

## Methods

### each()

```javascript
each(o: Object, cb: Function, s: Object)
```
Performs an iteration of all items in a collection such as an object or array. This method will execute the
callback function for each item in the collection, if the callback returns false the iteration will terminate.
The callback has the following format: `cb(value, key_or_index)`.

#### Examples

```javascript
// Iterate an array
tinymce.each([ 1,2,3 ], (v, i) => {
  console.debug("Value: " + v + ", Index: " + i);
});

// Iterate an object
tinymce.each({ a: 1, b: 2, c: 3 }, (v, k) => {
  console.debug("Value: " + v + ", Key: " + k);
});
```

#### Parameters

- `o (Object)` - Collection to iterate.
- `cb (Function)` - Callback function to execute for each item.
- `s (Object)` - Optional scope to execute the callback in.

### explode()

```javascript
explode(s: String, d: String)
```
Splits a string but removes the whitespace before and after each value.

#### Examples

```javascript
// Split a string into an array with a,b,c
const arr = tinymce.explode('a, b,   c');
```

#### Parameters

- `s (String)` - String to split.
- `d (String)` - Delimiter to split by.

### grep()

```javascript
grep(a: Array, f: Function): Array
```
Filters out items from the input array by calling the specified function for each item.
If the function returns false the item will be excluded if it returns true it will be included.

#### Examples

```javascript
// Filter out some items, this will return an array with 4 and 5
const items = tinymce.grep([ 1,2,3,4,5 ], (v) => v > 3);
```

#### Parameters

- `a (Array)` - Array of items to loop though.
- `f (Function)` - Function to call for each item. Include/exclude depends on it’s return value.

#### Return value

- `Array` - New array with values imported and filtered based in input.

### hasOwnProperty()

```javascript
hasOwnProperty(obj: Object, prop: String): Boolean
```
JavaScript does not protect hasOwnProperty method, so it is possible to overwrite it. This is
an object independent version.
Checks if the input object `obj` has the property `prop`.

#### Parameters

- `obj (Object)` - Object to check if the property exists.
- `prop (String)` - Name of a property on the object.

#### Return value

- `Boolean` - true if the object has the specified property.

### inArray()

```javascript
inArray(item: any, arr: Array): Number
```
Returns an index of the item or -1 if item is not present in the array.

#### Parameters

- `item (any)` - Item to search for.
- `arr (Array)` - Array to search in.

#### Return value

- `Number` - index of the item or -1 if item was not found.

### is()

```javascript
is(obj: Object, type: String): Boolean
```
Checks if a object is of a specific type for example an array.

#### Parameters

- `obj (Object)` - Object to check type of.
- `type (String)` - Optional type to check for.

#### Return value

- `Boolean` - true/false if the object is of the specified type.

### isArray()

```javascript
isArray(obj: Object): Boolean
```
Returns true/false if the object is an array or not.

#### Parameters

- `obj (Object)` - Object to check.

#### Return value

- `Boolean` - true/false state if the object is an array or not.

### makeMap()

```javascript
makeMap(items: Array | String, delim: String, map: Object): Object
```
Makes a name/object map out of an array with names.

#### Parameters

- `items (Array | String)` - Items to make map out of.
- `delim (String)` - Optional delimiter to split string by.
- `map (Object)` - Optional map to add items to.

#### Return value

- `Object` - Name/value map of items.

### map()

```javascript
map(array: Array, callback: Function): Array
```
Creates a new array by the return value of each iteration function call. This enables you to convert
one array list into another.

#### Parameters

- `array (Array)` - Array of items to iterate.
- `callback (Function)` - Function to call for each item. It’s return value will be the new value.

#### Return value

- `Array` - Array with new values based on function return values.

### resolve()

```javascript
resolve(n: String, o: Object): Object
```
Resolves a string and returns the object from a specific structure.

#### Examples

```javascript
// Resolve a path into an object reference
const obj = tinymce.resolve('a.b.c.d');
```

#### Parameters

- `n (String)` - Path to resolve for example a.b.c.d.
- `o (Object)` - Optional object to search though, defaults to window.

#### Return value

- `Object` - Last object in path or null if it couldn’t be resolved.

### toArray()

```javascript
toArray(obj: Object): Array
```
Converts the specified object into a real JavaScript array.

#### Parameters

- `obj (Object)` - Object to convert into array.

#### Return value

- `Array` - Array object based in input.

### trim()

```javascript
trim(s: String): String
```
Removes whitespace from the beginning and end of a string.

#### Parameters

- `s (String)` - String to remove whitespace from.

#### Return value

- `String` - New string with removed whitespace.

### walk()

```javascript
walk(o: Object, f: Function, n: String, s: String)
```
Executed the specified function for each item in a object tree.

#### Parameters

- `o (Object)` - Object tree to walk though.
- `f (Function)` - Function to call for each item.
- `n (String)` - Optional name of collection inside the objects to walk for example childNodes.
- `s (String)` - Optional scope to execute the function in.
