2009-09-09 2 views
18

通常のJavaScriptのtoString()方法は、この別の区切り文字をjavascript toString()..に追加しますか?

var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ]; 
var result = myArray .toString(); 

のようにカンマ区切りの値の配列を返し、それがこのzero,one,two,three,four,fiveのような出力を返します。

しかし、私はこのフォーマットzero_one_two_three_four_fiveに結果を表現するための要件(_とコンマを置換)を有します。

私は、配列を文字列に変換した後にreplaceメソッドを使用してこれを行うことができます。より良い代替品がありますか?

乾杯

ラメシュ・ヴェル

答えて

35

myArray.join( '_')は、あなたが必要なものを行う必要があります。特定の区切りを持つ要素を結合する

+0

ありがとうedeverett ..私は最初にjavascriptの基礎を読む必要があります... :( – RameshVel

+1

いいえ、心配しないで、それはここにあるものです。 – edeverett

5

使用join:それは行うことができ発揮し、タイトルを答えるよりも

myArray.join("_") 
3

は、他の目的を果たすないように(ただし、精神)の質問の質問:

<pre> 
<script type="text/javascript"> 
Array.prototype.toStringDefault = Array.prototype.toString; 
Array.prototype.toString = function (delim) { 
    if ('undefined' === typeof delim) { 
     return this.toStringDefault(); 
    } 
    return this.join(delim); 
} 
var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ]; 
var result1 = myArray.toString('_'); 
document.writeln(result1); 
var result2 = myArray.toString(); 
document.writeln(result2); 
</script> 
</pre> 

私はこれを行うことはお勧めしません。コードが複雑になり、toString()の機能をArrayに拡張するために必要なコードに依存します。 Array.join()を使用することは正解です。私は、JavaScriptが最初に求められたことをするために修正できることを示したかっただけです。

1

グラントワグナーの答えは、配列が多次元である場合に有用です。あなたがArray.joinを使用している場合

は([[ 'A'、 'リトル']、[ '子羊'、 'と']、[ 'メリー'、 '持っていた']]

配列を取ります「_」)方法、結果のようなものであろう:結合方法は、メインアレイ内の各要素を組み立てる.toString()メソッドと、このデフォルトを使用するように

メアリー、Had_A、Little_lamb、及び

カンマ区切り記号を使用する方法。

しかし、Array.toString()メソッドを変更すると、望ましい結果が得られます。

関連する問題