-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
36 lines (28 loc) · 904 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/***************************************
*
* Pivot an array of key-values into a Javascript object.
*
* @param {object} data array to be pivoted
* @param {object?} options
* * {string?} keyName - default to 'name'
* * {string?} valueName - default to 'value'
*
* @return {object} Original object with transformed data structure: array is transformed into an object
*
**************************************/
export default function pivot(data, options) {
// Initialize options
options = options || {}
options.keyName = options.keyName || 'name'
options.valueName = options.valueName || 'value'
if (!Array.isArray(data))
throw new TypeError('Invalid datatype - structure to pivot must be an array')
else {
// perform the pivot
let pivoted = {}
data.forEach(function(obj) {
pivoted[obj[options.keyName]] = obj[options.valueName]
})
return pivoted
}
}