我尝试与遗留系统集成,遗留系统依赖于通过GET请求发送的值作为制表符分隔字符串。我将数据放在一个数组中,但是在以正确的方式尝试join()
时遇到了问题。
这是我尝试过的,没有一个可行;
var myArray = ["a", "b", "c"]
myArray.join(\t);
myArray.join(/\t/);
myArray.join('\t');
myArray.join('\\t');
myArray.join(' '); // tab character
修改
似乎实际问题显示\t
加入确实有效,但是当对其进行网址编码时,标签不会变为%09
,而是会被删除。< / p>
所需的URL编码var:
"?tags=a%09b%09c"
实际输出:
"?tags=abc"
有谁知道如何解决这个问题?
答案 0 :(得分:5)
这个适用于我的Chrome控制台:
var myArray = ["a", "b", "c"];
console.log(myArray.join('\t'));
请参阅此jsfiddle。
这个也是有效的:
myArray.join(' '); // tab character
浏览器:Chrome 26.0.1410.65(os x)
修改:
var myArray = ["a", "b", "c"];
var string = myArray.join('\t');
var url = encodeURIComponent(string);
console.log(url); //output : a%09b%09c
答案 1 :(得分:1)
您的问题是您没有将其分配给新变量。 Join()不会修改原始变量。试试这个:
var myArray = ["a", "b", "c"]
var array_string = myArray.join('\t');
alert(array_string);
答案 2 :(得分:0)
\t
应该有用......
var arr = [1, 2, 3];
var str = arr.join("\t");
但是,您如何显示输出?如果您尝试在普通HTML页面上显示内容,则选项卡将显示为空格。如果您将内容放在<pre>
等特殊元素中,它们应该正常显示。
我知道这是一个讨厌的解决方案,但您可以使用多个
而不是......
var arr = [1, 2, 3];
var str = arr.join(" "); // s-sorry ;__;