我想創建一個簡單的Google電子表格函數來將一個等級轉換爲一個積分系統,然後添加積分。有權訪問電子表格的人(A,B,C,D)將根據第一選擇(1),第二選擇(2)和第三選擇(3)對他們的選擇(W,X,Y,Z)基礎。谷歌腳本:函數來計票
行是選民,選擇是在列中。
每投1票= 3分; 2票= 2分; 3票= 1分。
出於某種原因,我的腳本只輸出腳本的長度而不是點的總和。你能幫我確定腳本哪裏出錯了嗎?
function tally(rankarray) {
var rank = 0; // this is the vote cast
var result = 0; // this will hold the total
var value = 0; // this holds the value of the vote cast
for (var i=0; i < rankarray.length; i++){
rank = rankarray[i];
if (rank = 1) {
value = 3;
}
if (rank = 2) {
value = 2;
}
if (rank = 3) {
value = 1;
}
result += value;
}
return result;
}
編輯:
我想我固定它。任何人都可以看到下面的任何問題?
function tally(rankarray) {
var rank = 0;
var result = 0; // this will hold the total
var value = 0; // this holds the value of the vote cast
for (var i=0; i < rankarray.length; i++){
rank = rankarray[i];
if (rank == 1) {
value = 3;
}
else if (rank == 2) {
value = 2;
}
else if (rank == 3) {
value = 1;
}
result += value;
value = 0;
}
return result;
}
請注意'if(rank = 1)'不會做你認爲它的作用。單個等號表示將值「1」分配給變量「rank」。你需要一個雙等號:'if(rank == 1)',它告訴它測試'rank'的值是否等於'1'。 (無論如何,Nanashi的答案,使用'switch'構造而不是'if',這是一個很好的解決方案。) –