2016-06-01 4 views
0

ich diese Funktion in Google SkriptGoogle-Tabelle Skript Verwendung Array

gemacht
function gemOMVG(values) { 
    var sum = ""; 

    for (var i = 0; i < values.length; i++) { 
    sum = sum+values[i]; 
    } 

return sum; 
} 

Ich habe eine Reihe von drei horizontalen Zellen mit Werten ‚o‘ ‚v‘ ‚g‘. Mein Skript gibt o, v, g getrennt durch Kommas zurück. Ich möchte diese Werte in einem Array haben, damit ich if-Anweisungen durchführen kann.

kann mir jemand dabei helfen?

+0

Die Variable 'values' wird ein doppeltes Array haben, wie' [['o'], ['v'], ['g']] ''. Auf diese Weise werden alle Mehrzellenbereiche an benutzerdefinierte Funktionen übergeben. Außerdem ist es unklar, was Sie meinen, wenn Sie sie "in einem Array" haben (sie sind bereits in einem Array) und was dies mit dem Ausführen von if-Anweisungen zu tun hat. –

+0

Danke, ich habe es herausgefunden (Antwort unten) – apielotje

Antwort

0

Ich habe es herausgefunden!

function gemOMVG(values) { 
    var sum = 0; 

    for (var i = 0; i < values[0].length; i++) { 
    //sum += "-"+values[0][i]; 
    if(values[0][i] == 'o'){sum+= 4.5;} 
    else if (values[0][i] == 'm'){sum+= 5;} 
    else if (values[0][i] == 'v'){sum+= 6.2;} 
    else if(values[0][i] == 'g'){sum+= 8.5;} 
    } 

    var gem = sum/values[0].length; 

    var array = [4.5, 5, 6.2, 8.5]; 

function closest(arr, closestTo){ 

    var closest = Math.max.apply(null, arr); //Get the highest number in arr in case it match nothing. 

    for(var i = 0; i < arr.length; i++){ //Loop the array 
     if(arr[i] >= closestTo && arr[i] < closest) closest = arr[i]; //Check if it's higher than your number, but lower than your closest value 
    } 

    return closest; // return the value 
} 

var roundgem = closest(array, gem); 
    if(roundgem == 4.5){return "o";} 
    else if(roundgem == 5){return "m";} 
    else if(roundgem == 6.2){return "v";} 
    else if(roundgem == 8.5){return "g";} 
} 
Verwandte Themen