javascript数组作为字符串列表(保留引号)

我有一个字符串数组。当我使用.toString()输出它时,引号不会被保留。这使得使用“in”构建mysql查询变得非常困难。考虑以下事项:

从表格中选择*列('item1'、'item2'、'item3'、'item4')
toString正在返回:IN(项1、项2、项3、项4)

这里一定有一个我忽略的简单的修复方法

引号不会被保留,因为它们实际上不是字符串值的一部分,它们只是指示代码中字符串文字所必需的

因此,不要使用toString()。相反,一种方法是:

var arr=['item1'、'item2'、'item3'、'item4';
var QUOTEDANDCOMMASEPATED=“””+arr.join(“,”)+“”;
//quotedAndCommaSeparated==“'item1'、'item2'、'item3'、'item4'”

join()方法返回一个字符串,该字符串将所有数组元素连接成单个字符串,每个项目之间带有(可选)分隔符。因此,如果指定包含引号和逗号的分隔符,则只需手动为第一项和最后一项(分别)添加起始引号和结束引号

(请告诉我您没有使用客户端JavaScript来形成SQL。)

编辑:要允许空数组,请为结果字符串包含一个默认值,否则(如missingno所指出的)字符串将是“''

var newString=arr.length==0?“:”““+arr.join(“,”)+“”;
//此处为空数组的默认值---^^

(使用if(arr.length==0)执行其他操作可能比运行SELECT语句更合适。)

发表评论