Add docs page for the utils module

This commit is contained in:
bjoluc 2023-09-12 21:31:37 +02:00
parent 6d8aca9881
commit 36e64efbfb
2 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,93 @@
# jsPsych.utils
The jsPsych.utils module contains utility functions that might turn out useful at one place or the other.
---
## jsPsych.utils.unique
```javascript
jsPsych.utils.unique(array)
```
### Parameters
| Parameter | Type | Description |
| --------- | ----- | ------------------------------ |
| array | Array | An array of arbitrary elements |
### Return value
An array containing all elements from the input array, but without duplicate elements
### Description
This function takes an array and returns a copy of that array with all duplicate elements removed.
### Example
```javascript
jsPsych.utils.unique(["a", "b", "b", 1, 1, 2]) // returns ["a", "b", 1, 2]
```
---
## jsPsych.utils.deepCopy
```javascript
jsPsych.utils.deepCopy(object);
```
### Parameters
| Parameter | Type | Description |
| --------- | --------------- | ---------------------------- |
| object | Object or Array | An arbitrary object or array |
### Return value
A deep copy of the provided object or array
### Description
This function takes an arbitrary object or array and returns a deep copy of it, i.e. all child objects or arrays are recursively copied too.
### Example
```javascript
var myObject = { nested: ["array", "of", "elements"] };
var deepCopy = jsPsych.utils.deepCopy(myObject);
deepCopy.nested[2] = "thingies";
console.log(myObject.nested[2]) // still logs "elements"
```
---
## jsPsych.utils.deepMerge
```javascript
jsPsych.utils.deepMerge(object1, object2);
```
### Parameters
| Parameter | Type | Description |
| --------- | ------ | --------------- |
| object1 | Object | Object to merge |
| object2 | Object | Object to merge |
### Return value
A deep copy of `object1` with all the (nested) properties from `object2` filled in
### Description
This function takes two objects and recursively merges them into a new object. If both objects define the same (nested) property, the property value from `object2` takes precedence.
### Example
```javascript
var object1 = { a: 1, b: { c: 1, d: 2 } };
var object2 = { b: { c: 2 }, e: 3 };
jsPsych.utils.deepMerge(object1, object2); // returns { a: 1, b: { c: 2, d: 2 }, e: 3 }
```

View File

@ -70,6 +70,7 @@ nav:
- 'jsPsych.data': 'reference/jspsych-data.md' - 'jsPsych.data': 'reference/jspsych-data.md'
- 'jsPsych.randomization': 'reference/jspsych-randomization.md' - 'jsPsych.randomization': 'reference/jspsych-randomization.md'
- 'jsPsych.turk': 'reference/jspsych-turk.md' - 'jsPsych.turk': 'reference/jspsych-turk.md'
- 'jsPsych.utils': 'reference/jspsych-utils.md'
- 'jsPsych.pluginAPI': 'reference/jspsych-pluginAPI.md' - 'jsPsych.pluginAPI': 'reference/jspsych-pluginAPI.md'
- Plugins: - Plugins:
- 'List of Plugins': 'plugins/list-of-plugins.md' - 'List of Plugins': 'plugins/list-of-plugins.md'