替换数组以表示为字符串 - 逻辑错误

时间:2012-10-18 07:20:32

标签: javascript arrays

我有以下格式的Javascript数组;

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

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

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

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

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

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

4 个答案:

答案 0 :(得分:1)

您可以使用Array.join()

> var a = ["One","Two","Three"];
> "('" + a.join("','") + "')"
"('One','Two','Three')"

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

编辑我记错了,这不会提供合适的结果......输出结果如下:

One,Two,Three.

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

如果你必须只使用replace()来解决这个问题,这将得到正确的结果:

arrStr = arr.toString();
arrStr=arrStr.replace(",","','");
arrStr = "('" + arrStr "')";

答案 3 :(得分:0)

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

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

Fiddle Demo