Last active
June 7, 2019 19:46
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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