MathUtil
Script will run the provided mathematical action on 2 provided values and produce a result. The result can be stored on the context using the contextKey argument
javascript · Common Scripts
Source
var lh = args.lh; var rh = args.rh; var action = args.action; var lhRegex = args.lhRegex; var rhRegex = args.rhRegex; var lRadix = args.lhRadix ? args.lRadix : 10; var rRadix = args.rhRadix ? args.rRadix : 10; var supportedActions = { '+': function() { return lh + rh; }, '-': function() { return lh - rh; }, '>': function() { return lh > rh; }, '<': function() { return lh < rh; }, '*': function() { return lh * rh; }, '/': function() { return lh / rh; }, '%': function() { return lh % rh; }, '==': function() { return lh == rh; } } actionKeys = Object.keys(supportedActions); //verfiy action is supported if (!action || actionKeys.indexOf(action) < 0 ) { return {ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: '**[' + action + ']** is not a supported action, only ' + actionKeys.join() + ' are supported'}; } //parse lh according to regex if (lhRegex) { var lr = new RegExp(lhRegex, 'i'); lh = lh.match(lr); if (!lh) { return {ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: 'lh - parsed to be an empty value from regex **[' + lhRegex + ']**, on value **[' + args.lh + ']**'}; } } //parse rh according to regex if (rhRegex) { var rr = new RegExp(rhRegex, 'i'); rh = rh.match(rr); if (!rh) { return {ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: 'rh - parsed to be an empty value from regex **[' + rhRegex + ']**, on value **[' + args.rh + ']**'}; } } if (isNaN(lh)) { return {ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: '**[' + lh + ']** is not a number'}; } if (isNaN(rh)) { return {ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: '**[' + rh + ']** is not a number'}; } lh = parseInt(lh, lRadix) rh = parseInt(rh, rRadix) //do action on params var res = supportedActions[action](); // We need to override the context value so we use setContext if (args.contextKey) { setContext(args.contextKey, res); } else { setContext('MathResult', res); } return {ContentsFormat: formats.markdown, Type: entryTypes.note, Contents: lh + ' ' + action + ' ' + rh + ' = ' + res};
README
Runs the provided mathematical action on 2 provided values and produce a result.
The result can be stored on the context using the contextKey argument.
Script Data
| Name | Description |
|---|---|
| Script Type | javascript |
| Tags | Utility |
Inputs
| Argument Name | Description |
|---|---|
| lh | The left hand parameter. |
| rh | The right hand parameter. |
| action | The math expression (+, -, >, <, ==, *, /, %). |
| rhRegex | The regex used to filter only a specific part of the right hand argument. |
| lhRegex | The regex used to filter only a specific part of the left hand argument. |
| lhRadix | The radix for the left hand value. The default is 10. |
| rhRadix | Radix for right hand value, defaults to 10 |
| contextKey | The path to store the result. |
Outputs
| Path | Description | Type |
|---|---|---|
| MathResult | The result of the math action. This might be overriden by contextKey. |
Unknown |