# StructFilter()

This function creates a new Struct that returns all entries from an struct that match the given filter.

```
StructFilter( struct=struct, filter=function, parallel=boolean, maxThreads=number );
```

**Returns:** struct

# Arguments

| Argument | Type | Required | Description | Default |
|----------|------|----------|-------------|---------|
| struct | struct | Yes | struct to filter entries from |  |
| filter | function | Yes | A function/closure that implements the following constructor `function(any key, any value) { return true/false; }` |  |
| parallel | boolean | No | execute closures parallel |  |
| maxThreads | number | No | maximum number of threads executed, ignored when argument "parallel" is set to false *Alias: maxThreadCount* | 20 |

# Examples

### Non-Member Function

```cfml
animals = {
	cow: "moo",
	pig: "oink",
	snail: ""
};

// Show all animals
Dump(
	label: "All animals",
	var: animals
);

// Get animals that make noise
noisyAnimals = StructFilter(animals, function(key) {
	// If the key has a value return true (noisy animal)
	if (Len(animals[arguments.key])) {
		return true;
	}

	return false;
});

Dump(
	label: "Noisy Animals",
	var: noisyAnimals
);

// Get animals that are quiet
quietAnimals = StructFilter(animals, function(key) {
	// If the key has a value return true (quiet animal)
	if (! Len(animals[arguments.key])) {
		return true;
	}

	return false;
});

Dump(
	label: "Quiet Animals",
	var: quietAnimals
);
```







# Categories

[Structures](../../categories/struct.md), [Collections](../../categories/collection.md)

# See Also

[struct.filter()](../objects/struct/filter.md)