I need help with writing multiple, repetitive functions into a one function that passes in variables instead of having to write it over and over again.
Currently, I have JavaScript functions that do the same thing, just with a different variable and strings.
var Apple_Data = Info.Apple; // grabs string objects from JSON file
var Banana_Data = Info.Banana; // grabs string objects from JSON file
function CompareApple() {
if (counter == 0) {
prev_Apple_Data = Apple_Data;
}
if (Apple_Data > prev_Apple_Data) {
if ((Math.abs(Apple_Data - prev_Apple_Data) >= prev_Apple_Data / 2))
document.getElementById("Apple_img").src = "img/yelow.png",
StartCnt(1);
else if ((Math.abs(Apple_Data - prev_Apple_Data) <= prev_Apple_Data / 2))
document.getElementById("Apple_img").src = "img/green.png";
}
else if (Apple_Data < prev_Apple_Data) {
if ((Math.abs(Apple_Data - prev_Apple_Data) >= prev_Apple_Data / 2))
document.getElementById("Apple_img").src = "img/yelow.png",
StartCnt(1);
else if ((Math.abs(Apple_Data - prev_Apple_Data) <= prev_Apple_Data / 2))
document.getElementById("Apple_img").src = "img/green.png";
}
prev_Apple_Data = Apple_Data;
}
function CompareBanana() {
if (counter == 0) {
prev_Banana_Data = Banana_Data;
}
if (Banana_Data > prev_Banana_Data) {
if ((Math.abs(Banana_Data - prev_Banana_Data) >= prev_Banana_Data / 2))
document.getElementById("Banana_img").src = "img/yelow.png",
StartCnt(1);
else if ((Math.abs(Banana_Data - prev_Banana_Data) <= prev_Banana_Data / 2))
document.getElementById("Banana_img").src = "img/green.png";
}
else if (Banana_Data < prev_Banana_Data) {
if ((Math.abs(Banana_Data - prev_Banana_Data) >= prev_Banana_Data / 2))
document.getElementById("Banana_img").src = "img/yelow.png",
StartCnt(1);
else if ((Math.abs(Banana_Data - prev_Banana_Data) <= prev_Banana_Data / 2))
document.getElementById("Banana_img").src = "img/green.png";
}
prev_Banana_Data = Banana_Data;
}
If I want to write these in 1 function that passes in variables instead, how will I do it? I was thinking the process would be something such as, having to make 4 different empty arrays
Var PreviousData = [];
Var CurrentData = [];
Var DeclaredData = [];
Var ImageArray = [];
and then write a function that passes in these arrays
function Compare(PreviousData, CurrentData, DeclaredData, ImageArray){
if (counter ==0){
PreviousData = DeclaredData;
}
if (Declared_Data > PreviousData) {
if ((Math.abs(Declared_Data - PreviousData) >= PreviousData / 2))
document.getElementById("ImageArray").src = "img/yellow.png",
StartCnt(1);
else if ((Math.abs(Declared_Data - PreviousData) <= PreviousData / 2))
document.getElementById("ImageArray").src = "img/green.png";
}
else if (Declared_Data < PreviousData) {
if ((Math.abs(Declared_Data - PreviousData) >= PreviousData / 2))
document.getElementById("ImageArray").src = "img/yellow.png",
StartCnt(1);
else if ((Math.abs(Declared_Data - PreviousData) <= PreviousData / 2))
document.getElementById("ImageArray").src = "img/green.png";
}
}
the counter and the Math.abs is written there to loop through objects and currently works.
and then initialize the function by something like
Compare(previousData, info.Apple, DeclaredData, ImageArray);