Skip to content

Instantly share code, notes, and snippets.

@dennisja
Last active June 7, 2019 19:46
Show Gist options
  • Save dennisja/18aa81f02722100ebbe8084703b6bbbf to your computer and use it in GitHub Desktop.
Save dennisja/18aa81f02722100ebbe8084703b6bbbf to your computer and use it in GitHub Desktop.
Implements and uses functions to calculate the averageRanking of objects and to sort objects by ranking
/**
* Sorts an array of object by ranking
* @param {array} objects The array containing objects to sort by ranking
*/
function orderByRanking(objects) {
return objects.sort((a, b) => a.ranking - b.ranking);
}
/**
* Calculates the average ranking of objects
* @param {array} objects The array containing objects whose average ranking is to be calculated
*/
function calculateAverageRanking(objects) {
const totalRanking = objects.reduce(
(total, currentObject) => (total + currentObject.ranking),
0,
);
const averageRanking = totalRanking / objects.length;
return averageRanking;
}
/**
* Generates an array of random objects
* Its added here just to test the first two functions
* @param {number} number The number of random objects to generate
*/
function generateRandomObjects(number = 10) {
const objects = [];
for (let i = 0; i < number; i++) {
objects.push({
name: `object-${i}`,
ranking: 10 + Math.ceil(Math.random() * 10),
});
}
return objects;
}
const objects = generateRandomObjects();
console.log('Objects: ', objects);
const sortedObjects = orderByRanking(objects);
console.log('Objects sorted by ranking: ', sortedObjects);
const averageRanking = calculateAverageRanking(objects);
console.log('Objects sorted by ranking: ', averageRanking);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment