JSPM

@writetome51/get-average-from-property

2.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q24335F
  • License MIT

Returns average value of particular property found in objects

Package Exports

  • @writetome51/get-average-from-property

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@writetome51/get-average-from-property) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

getAverageFromProperty(
      property: string,
      objects
): number

Returns average value of property found in objects.
Value of property in each of objects must be type 'number', or else will error.

Note: property is a string that can include dot notation
( i.e, 'property.subproperty.subsubproperty' ) .
Note: property does not have to be an object key. It can also be an array index.
If getting the value of a nested array index, here you need to use dot-notation
and not square braces. Example: '1.0' instead of [1][0]

Examples

let players = [
    {name: 'Bill Mill', strikeouts: 10},
    {name: 'Milly Buttons', strikeouts: 12},
    {name: 'Mick Stan', strikeouts: 5},
    {name: 'Kelly Rogers', strikeouts: 2},
    {name: 'Angus Beef', strikeouts: 11},
    {name: 'Charlie Soup', strikeouts: 10}
];

getAverageFromProperty('strikeouts', players);
    // --> 8.333333333333334


players = [
    {stats: {strikeouts: 100}},
    {stats: {strikeouts: 20}},
    {stats: {strikeouts: 30}},
    {stats: {strikeouts: 40}},
    {stats: {strikeouts: 10}},
    {stats: {strikeouts: 15}}
];

getAverageFromProperty('stats.strikeouts', players);
    // --> 35.833333333333336


let numberGroups = [
    [[1, 5], [6, 10]],
    [[11, 15], [16, 20]],
    [[21, 25], [26, 30]],
    [[31, 35], [36, 40]]
];
// get the average of [1,11,21,31]
getAverageFromProperty('0.0', numberGroups);
    // --> 16


players = [
    {name: 'Bill Mill', strikeouts: '10'}, // string will trigger error.
    {name: 'Milly Buttons', strikeouts: 12},
    {name: 'Mick Stan', strikeouts: 5},
    {name: 'Kelly Rogers', strikeouts: 2}
];

averageStrikeouts = getAverageFromProperty('strikeouts', players);
// console: 'Error: the array contains a value that is not a number.'


players = [
    {name: 'Kelly Rogers', strikeouts: 2},
    {name: 'Angus Beef', strikeouts: 11},
    {name: 'Charlie Soup', strikeouts: 10},
    {name: 'Willy'}  // missing property will trigger error.
];

averageStrikeouts = getAverageFromProperty('strikeouts', players);
// console: 'Error: the array contains a value that is not a number.'
// (In this case, the value that is not a number is undefined)

Installation

You must have npm installed first. Then, in the command line:

npm i @writetome51/get-average-from-property

Loading

import {getAverageFromProperty} from '@writetome51/get-average-from-property';