OliverJ90
OliverJ90

Reputation: 1311

Applying math to values in an array

I have an array:

var myarray = ["5,35.0", "15,45.0", "25,45.0", "35,50.0", "45,60.0", "55,65.0", "65,60.0", "75,60.0", "85,70.0", "95,80.0"]

the values correspond to x,y points on a graph.

I need to apply math to each y value to change the y-axis scale. To keep it simple, let's say I need to multiply each y value by 2.

How would I go about this?

Upvotes: 2

Views: 480

Answers (3)

Harsh Gupta
Harsh Gupta

Reputation: 4538

Roughly,

var myarray = ["5,35.0", "15,45.0", "25,45.0", "35,50.0", "45,60.0", "55,65.0", "65,60.0", "75,60.0", "85,70.0", "95,80.0"];

var y = 0;
var x = 0;

for(var i in myarray) {
    y = parseFloat(myarray[i].split(",")[1]);
    x = parseFloat(myarray[i].split(",")[0]);
    y = y * 2; // or your operation
    myarray[i] = x + "," + y;
}

console.log(myarray);

HTH

Upvotes: 1

Andy
Andy

Reputation: 63524

Use map to loop over the array, converting the string to a pair of numbers, performing the addition ensuring that the decimal place is kept intact.

var out = myarray.map(function (el) {
  var xy = el.split(',').map(Number);
  xy[1] = (xy[1] * 2).toFixed(1);
  return xy.join(',');
});

Fiddle

Upvotes: 4

Janak
Janak

Reputation: 5052

You need to loop through every element and split them via ',' and then do the MATH over it and save it back.

Say,

for(var i=0;i<myarray.length;i++){
    var temp = (parseFloat(myarray[i].split(',')[1])).toFixed(2);
    temp = temp * 2; 
    myarray[i] = myarray[i].split(',')[0] + "," + temp;
}

Upvotes: 3

Related Questions