Created
October 20, 2016 11:56
-
-
Save agadev/ce61089abd160f635a35882230588daa to your computer and use it in GitHub Desktop.
Test file for Average and Sort from a given array of objects
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
// lets assume myObject is array of objects | |
let myObject = [ | |
{name:"a",ranking:4}, | |
{name:"b",ranking:6}, | |
{name:"c",ranking:5}, | |
{name:"d",ranking:3} | |
]; | |
// I am assumping all data is not validated before, | |
// hence checking for number | |
// Using ES6 and array reduce function | |
const average = arr => arr.reduce((total, current) => | |
total + (isNaN(current.ranking)? 0:current.ranking), 0) / arr.length; | |
//alert("average is "+average(myObject)); | |
// Average Using for Loop | |
function averageUsingLoop(array) { | |
var total = 0; | |
for ( var i = 0; i < array.length; i++ ){ | |
if(!isNaN(array[i].ranking)) { | |
total += array[i].ranking; | |
} | |
} | |
return total/array.length; | |
}; | |
//alert("average using loop is "+averageUsingLoop(myObject)); | |
// Using function to provide custom sort | |
let sortedObj = myObject.sort(function(a, b) { | |
return (a.ranking<b.ranking?-1:(a.ranking>b.ranking?1:0)); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment