Google脚本:计算投票的功能

时间:2014-06-30 20:11:18

标签: javascript google-sheets

我正在尝试创建一个简单的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;
}

1 个答案:

答案 0 :(得分: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];
    switch(rank)
    {
        case 1:
            value = 3;
            break;
        case 2:
            value = 2;
            break;
        case 3:
            value = 1;
            break;
    }
    result += value;
  }
  return result;
}

JSFiddle.

希望这有帮助。