Google表格JavaScript错误"之后缺少名称。操作员"

时间:2017-04-13 17:35:04

标签: javascript google-sheets

我得到的错误是:

  

之后缺少名字。操作

我在第10行调试/运行代码时得到它。任何人都知道解决方法吗?

1    function codebook_level() {
2      
3      if(!require(pacman)) {
4      install.packages("pacman"); require(pacman)}
5    p_load(magrittr, data.table)
6    require(dplyr)
7    
8    
9    read_add_name_col <- function(file){
10      rn <- gsub(".csv", "", file, ignore.case=T)
11      spl <- strsplit(rn, "/") %>% unlist()
12      svy <- spl[length(spl)]
13      df <- fread(file)
14      df$survey_series <- svy
15      return(df)
....

1 个答案:

答案 0 :(得分:1)

<-不是JavaScript运算符。它将被解析为<比较运算符,后跟-

但令人惊讶的是,这不是问题,尽管它可能是 问题。 Google表格实现了一种语言非常类似 JavaScript大约ES3(因此,很久以前)虽然不完全相同。那时,你不能使用关键字作为属性名称文字。所以问题标题中的具体问题是:

rn <- gsub(".csv", "", file, ignore.case=T)
// ---------------------------------^

要在ES5规范更改语法之前访问名为case的属性,您必须使用括号表示法和字符串:ignore["case"]而不是ignore.case

但同样,这只是问题中的错误;除非<-是某种Sheets语言扩展,否则代码整体看起来可能还有其他问题。

  

我确实将“案例”编辑为[案例],以便解决了这个问题,但现在我在同一行上遇到了一般的“语法”错误。

嗯,是的。您必须处理围绕<-的其他问题,而这些问题并非存在于其他非JavaScript主义中。令人印象深刻的是,解析器能够达到那么远,真的,但是下一行的sp1令牌完全杀了它

看起来<-应该是=rn,这些都是变量。如果是这样的话:

  • 使用=(分配)运算符
  • 声明变量,这样你就不会成为The Horror of Implicit Globals 的牺牲品(这是我贫血的小博客上的帖子)

值得注意的是

gsub(".csv", "", file, ignore.case=T)

...看起来像很多,就像它试图使用命名参数一样。 JavaScript没有命名参数,该代码的真正功能是:

ignore.case=T
gsub(".csv", "", file, T)

...但仅评估T一次。