@writetome51/get-average-from-property

2.0.0 • Public • Published

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';

Package Sidebar

Install

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

Weekly Downloads

0

Version

2.0.0

License

MIT

Unpacked Size

4.74 kB

Total Files

4

Last publish

Collaborators

  • writetome51