Используйте возвращаемое значение для возврата измененных значений в объекте (или массиве):
function cancelFac(num1,num2){
var minVal = Math.min(num1,num2);
for(var i=2; i<=minVal; i++){
while(num1%i==0 && num2%i==0){
num1 = num1/i;
num2 = num2/i;
}
}
return({a: num1, b: num2});
}
var multiplyFraction = function(){
var a = notZero(rand(13,0));
var b = notZero(rand(13,0));
//Cancel Common factors
var result = cancelFac(a,b);
a = result.a;
b = result.b;
Или вы можете передать объект и изменить его значения в этом объекте, если хотите:
function cancelFac(in){
var num1 = in.num1, num2 = in.num2;
var minVal = Math.min(num1,num2);
for(var i=2; i<=minVal; i++){
while(num1%i==0 && num2%i==0){
num1 = num1/i;
num2 = num2/i;
}
}
// set results back into passed in object
in.num1 = num1;
in.num2 = num2;
}
var multiplyFraction = function(){
var data = {num1: notZero(rand(13,0), num2: notZero(rand(13,0)};
//Cancel Common factors
cancelFac(data);
// data.num1 and data.num2 contain the two modified values