私はそれを理解しました。
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";}
}
変数 'values'は' [['o']、['v']、['g']] 'のように二重の配列を持ちます。これは、すべてのマルチセル範囲がカスタム関数にどのように渡るかです。また、それらが配列内にあること(配列内にある)と、if文を実行することとは何を意味するのかは不明です。 –
ありがとう、私はそれを考え出した(以下の答え) – apielotje