0

タブ区切りの文字列として GET リクエストを介して送信される値に依存するレガシー システムと統合しようとしています。配列にデータがありますがjoin()、正しい方法でデータを取得しようとすると問題が発生します。

これが私が試みたものですが、どれもうまくいきません。

var myArray = ["a", "b", "c"]

myArray.join(\t);
myArray.join(/\t/);
myArray.join('\t');
myArray.join('\\t');
myArray.join('   '); // tab character

編集

実際の問題は、結合\tが実際に機能しているように見えますが、URL エンコードされている場合、タブは本来のように変換されず%09、代わりに削除されます。

目的の URL エンコード変数:

"?tags=a%09b%09c"

実際の出力:

"?tags=abc"

これを解決する方法を知っている人はいますか?

4

3 に答える 3

6

これは私のクロムコンソールで動作します:

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/

于 2013-04-19T13:25:55.433 に答える
1

あなたの問題は、それを新しい変数に割り当てていないことです。Join() は元の変数を変更しません。これを試して:

var myArray = ["a", "b", "c"]

var array_string = myArray.join('\t');

alert(array_string);
于 2013-04-19T13:28:20.490 に答える
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 ;__;
于 2013-04-19T13:27:50.910 に答える