Skip to content Skip to sidebar Skip to footer

Calculating Change In Percent Of The Properties In Javascript Objects

I would like to calculate the percent change for a range of data by it's prior range. Here's an example of what I'm working on: Below is an array of objects that I need to calcula

Solution 1:

You mean like this in addition to your above object array and code?

var jCurrent = CalcWeekRange(objArr,32,33);
var jPrevious = CalcWeekRange(objArr,30,31);
var jCurrentDisplay = jCurrent[0].displayAd_imp;
var jPreviousDisplay = jPrevious[0].displayAd_imp;
var result = (jCurrentDisplay/jPreviousDisplay-1)*100;
console.log("result ", result);

Adjusted your jsFiddle here: jsFiddle

Update: In case you want to get the results based on the actual current week, this can be done with following adjustment to above code:

Date.prototype.getWeek = function() {
 var firstday = newDate(this.getFullYear(),0,1);
 var today = newDate(this.getFullYear(),this.getMonth(),this.getDate());
 var dayOfYear = ((today - firstday + 86400000)/86400000);
 returnMath.ceil(dayOfYear/7)
};

var today = newDate();
var currentWeekNumber = today.getWeek();

var jCurrentDynamic = CalcWeekRange(objArr,currentWeekNumber-1,currentWeekNumber);
var jPreviousDynamic = CalcWeekRange(objArr,currentWeekNumber -3,currentWeekNumber -2);

var jCurrentDisplayDynamic = jCurrentDynamic[0].displayAd_imp;
var jPreviousDisplayDynamic = jPreviousDynamic[0].displayAd_imp;
var resultDynamic = (jCurrentDisplayDynamic/jPreviousDisplayDynamic-1)*100;
console.log("resultDynamic ", resultDynamic);

I've updated the fiddle and added an object for the actual current week number 34 (just a copy of week 33 for testing), so the fiddle will stop working next week :)

Updated Demo

Post a Comment for "Calculating Change In Percent Of The Properties In Javascript Objects"