【发布时间】:2019-05-08 23:40:35
【问题描述】:
我试图在 Google Apps 脚本中的 Javascript 代码下运行。但我在第 3 行遇到语法错误。
输入:数组
例如:var array = ['a', 'b', 'c', 'b', 'a', 'b', 'c', 'a', 'a', 'a'];
输出:类似于 Python Counter 的对象 { "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 }
我很感激有人可以帮助我解决这个问题。
【问题讨论】:
-
不支持箭头语法
=>。使用常规函数语法。 -
@tehhowch 现在我遇到了一个错误。 “TypeError:无法调用未定义的方法“forEach”。” function Counter(array) { //函数返回输入数组的计数器。变量计数 = {}; array.forEach( function(val) {count[val] = (count[val] || 0) + 1; });返回计数; }
-
您的问题出在调用
Counter的代码中 -
@tehhowch 更改函数名称后我得到了同样的错误。 “TypeError:无法调用未定义的方法“forEach”。(第 183 行,文件“代码”)”。
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 = ['a', 'b', 'c', 'b', 'a', 'b', 'c', 'a', 'a', 'a']; Logger.log(createCounter(list));