0

我有一个以下格式的 Javascript 数组;

["One","Two","Three"]

我希望这是以下格式的字符串;

('One','Two','Three')

我尝试了以下方法;但它说TypeError: arr.replace is not a function(我猜这是因为arr是一个数组)

 arr=arr.replace("[","(");
arr=arr.replace("]",")");

如上所述如何替换字符串[ " ]( ' )

4

4 回答 4

1

好吧,您不能在 Array 上使用 .replace。您可以执行以下操作

var arr = ["One","Two","Three"];
    arr = "('" + arr.join("', '") + "')";
于 2012-10-18T07:24:11.447 回答
1

您可以使用Array.join()

> var a = ["One","Two","Three"];
> "('" + a.join("','") + "')"
"('One','Two','Three')"
于 2012-10-18T07:23:50.617 回答
0

您可以使用此代码将数组转换为字符串

var arr = ["One","Two","Three"]​;
var str = "('"+arr.join("','")+"')";
alert(str);
​

小提琴演示

于 2012-10-18T07:25:39.460 回答
0

您必须将其转换为字符串,而不是数组实例。尝试这个

arrStr = arr.toString();
arrStr=arrStr.replace("[","(");
arrStr=arrStr.replace("]",")"); 

编辑我记错了,这不会提供适当的结果......输出将是:

One,Two,Three.

推荐的解决方案首先由@Blender 发布,将数组部分连接在一起,并添加所需的开括号和右括号...

如果您必须仅使用 replace() 来解决此问题,则会得到正确的结果:

arrStr = arr.toString();
arrStr=arrStr.replace(",","','");
arrStr = "('" + arrStr "')";
于 2012-10-18T07:23:55.330 回答