mirror of
https://github.com/jspsych/jsPsych.git
synced 2025-05-10 11:10:54 +00:00
94 lines
2.2 KiB
Markdown
94 lines
2.2 KiB
Markdown
# 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 }
|
|
```
|