@alheimsins/bigfive-calculate-score
v3.0.3
Published
Calculate score for big five tests
Downloads
202
Readme
bigfive-calculate-score
Calculate score for big five tests
Installation
$ npm i @alheimsins/bigfive-calculate-score
Usage
Pass an object with property answers. Answers have to be an Array with domain and score. Facet is optional.
const calculateScore = require('@alheimsins/bigfive-calculate-score')
const result = {
"timeElapsed": -51,
"ip": "127.0.0.1",
"lang": "en",
"test": "50-IPIP-NEO-PI-R",
"totalQuestions": 50,
"answers": [
{
"domain": "A",
"facet": "1",
"score": "3"
},
{
"domain": "A",
"facet": "1",
"score": "3"
},
{
"domain": "E",
"facet": "1",
"score": "3"
},
{
"domain": "E",
"facet": "2",
"score": "3"
}
]
}
calculateScore(result)
returns score for each factor
{
'A': {
'score': 6,
'count': 2,
'result': 'neutral',
'facet': {
'1': {
'score': 6,
'count': 2,
'result': 'neutral'
}
}
},
'E': {
'score': 6,
'count': 2,
'result': 'neutral',
'facet': {
'1': {
'score': 3,
'count': 1,
'result': 'neutral'
},
'2': {
'score': 3,
'count': 1,
'result': 'neutral'
}
}
}
}
Advanced
If you want to override result pass a function as the calculateResult property
The function signature must be
function (score, count) {
'use strict'
// Do something
return 'value'
}
Example
const calculateScore = require('@alheimsins/bigfive-calculate-score')
const calculateResult = (score, count) => {
const average = score / count
let result = 'nøytral'
if (average > 3) {
result = 'høy'
} else if (average < 3) {
result = 'lav'
}
return result
}
const result = {
"timeElapsed": -51,
"ip": "127.0.0.1",
"lang": "en",
"test": "50-IPIP-NEO-PI-R",
"totalQuestions": 50,
"calculateResult": calculateResult,
"answers": [
{
"domain": "A",
"facet": "1",
"score": "3"
},
{
"domain": "A",
"facet": "1",
"score": "3"
},
{
"domain": "E",
"facet": "1",
"score": "3"
},
{
"domain": "E",
"facet": "2",
"score": "3"
}
]
}
calculateScore(result)
Returns
{
'A': {
'score': 6,
'count': 2,
'result': 'nøytral',
'facet': {
'1': {
'score': 6,
'count': 2,
'result': 'nøytral'
}
}
},
'E': {
'score': 6,
'count': 2,
'result': 'nøytral',
'facet': {
'1': {
'score': 3,
'count': 1,
'result': 'nøytral'
},
'2': {
'score': 3,
'count': 1,
'result': 'nøytral'
}
}
}
}
Related
- bigfive-web Website for five factor model of personality
- b5-web Static website for big five tests
License
About
Created by with ❤ for Alheimsins