Google Apps脚本计数器功能

时间:2018-12-07 08:10:35

标签: google-apps-script

我试图在Google Apps脚本中的Javascript代码下运行。但是我在第三行中遇到语法错误。
输入:数组
例如:var array = ['a', 'b', 'c', 'b', 'a', 'b', 'c', 'a', 'a', 'a'];
输出:类似于Python计数器的对象
{ "a": 5, "b": 3, "c": 2 }

function Counter(array) {  //function returns a counter of the input array.
  var count = {};
  array.forEach(val => count[val] = (count[val] || 0) + 1);
  return count;
}

我最初的问题是寻求帮助以识别错误。 上面函数的错误是由两个用户(@theMaster和@tehhowch)标识的箭头函数。 然后,我创建了以下功能,该功能可在JavaScript中使用,但在Google Apps脚本中出现错误。

  

TypeError:无法调用未定义的方法“ forEach”。 (第182行,文件“代码”)

function createCounter(array) {  //function returns a counter of the input array.
  var countv = {};
  array.forEach( function(val)
    {countv[val] = (countv[val] || 0) + 1;
  });
return countv;
};                                                                      

var list = [40, 40, 10, 60, 60, 60, 60, 30, 30, 10, 10, 10, 10, 10, 40, 20] Logger.log(createCounter(list));

预期输出:{ "10": 6, "20": 1, "30": 2, "40": 3, "60": 4 }

我很高兴有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

我尝试过,然后得到:{60=4.0, 40=3.0, 30=2.0, 20=1.0, 10=6.0}

function testCounter(){
  var s=createCounter([40, 40, 10, 60, 60, 60, 60, 30, 30, 10, 10, 10, 10, 10, 40, 20]);
  Logger.log(s);
}

function createCounter(array) {  //function returns a counter of the input array.
  var countv = {};
  array.forEach(function(val){
    countv[val] = (countv[val] || 0) + 1;
  });
  return countv;
}