通过选项卡加入()一个数组?

时间:2013-04-19 13:21:48

标签: javascript

我尝试与遗留系统集成,遗留系统依赖于通过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"

有谁知道如何解决这个问题?

3 个答案:

答案 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 

http://jsfiddle.net/mGZdk/2/

答案 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>等特殊元素中,它们应该正常显示。

我知道这是一个讨厌的解决方案,但您可以使用多个&nbsp;而不是......

var arr = [1, 2, 3];
var str = arr.join("&nbsp;&nbsp;&nbsp;&nbsp;"); // s-sorry ;__;