【问题标题】:Javascript: Build String Query using backtick(`) but always added a new lineJavascript:使用反引号(`)构建字符串查询,但总是添加一个新行
【发布时间】:2021-03-24 06:42:40
【问题描述】:

以下代码动态创建字符串,这是要运行的 athena 查询。 它总是在 las 字符串行中添加一个不必要的新行。 我在下面这样做了

arr = ["ee/User:1", "ww/User:2", ..., "ww/User:n"]
let len = arr.length;
columns = []
qq = "create external table users(";
for (let i = 0; i <= len - 1; i++) {

  let pp = arr[i].toLowerCase();
  //console.log(pp);
  pp = pp.replace("/", "_")
  pp = pp.replace(":", "_")
  pp = "`" + pp + "` String,"
  console.log(pp) // here also comming new line 
  colnames.push(pp)
}

let k = colnames.join("\n")
qq = qq + k;
console.log(qq) 

它构建了错误的查询,如下所示

  create external table users( `ee_user_1` String, 
                               `ww_user_2` String,
                               ....
                               `ww_user_n
                                `String,)  

最后一项不知道为什么不需要换行

【问题讨论】:

  • 我可以知道为什么消极吗?
  • 我没有投反对票,但您应该提供一个我们可以运行的代码示例,而不是一个粗略的近似值。您的代码甚至不连贯,因为您在一个地方有columns,在另一个地方有colnames,还有一个未声明的len 变量等。请参阅:stackoverflow.com/help/how-to-ask
  • 什么是len?正常的写法是i &lt; len
  • 我看不出这段代码可以在String之前添加换行符。
  • 您的输入数组arr 在最后一个字符串的末尾是否有换行符?

标签: javascript node.js amazon-athena


【解决方案1】:

这正是您记录数据的方式 - console.log 将在末尾写入新行 \n 的消息。

将您的最后一行从console.log(qq) 更改为console.log(qq + '***'),您将看到***qq 的值位于同一行。

【讨论】:

  • 谢谢李,我在一些操作系统中知道了 blacktick,比如 AMI 在执行代码时采用了不同的格式(疯狂的东西)。我需要让 String.formCode(96) 正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 2022-09-30
  • 2021-09-03
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多