(この記事は 地平線に行く とのマルチポストです)
JavaScript の split メソッドを使ったら「あれ?」となったのでメモ。
一般的な spilt メソッド
Java, C#, Go, Ruby, Perl の split
メソッドは、第二引数に limit
を指定できます。
これを指定すると分割回数が制限されます。
(下記の例だと、文字列を "aaa" と "bbb,ccc" の2つに分割しています)
Java
"aaa,bbb,ccc".split(",", 2)
// ==> String[2] { "aaa", "bbb,ccc" }
C#
"aaa,bbb,ccc".Split(new char[]{','}, 2)
// ==> String[2]{ "aaa", "bbb,ccc" }
Go
strings.SplitN("aaa,bbb,ccc", ",", 2)
// ==> ["aaa" "bbb,ccc"]
Ruby
"aaa,bbb,ccc".split(",", 2)
# ==> ["aaa", "bbb,ccc"]
Perl
split(/,/, "aaa,bbb,ccc", 2)
# ==> ("aaa", "bbb,ccc")
JavaScript の spilt メソッド
JavaScript の split
メソッドも、第二引数に limit
を指定できます。
ただ、ほかの言語と意味が違っていて、これを指定すると戻り値の要素数が制限されます。
(下記の例だと、文字列を分割して最初の2つである "aaa" と "bbb" を返しています)
JavaScript
"aaa,bbb,ccc".split(",", 2)
// ==> Array [ "aaa", "bbb" ]
MDN には「見つかった分割結果の数の制限を指定する整数です。」と書かれています。
パッと読んだ感じほかの言語と同じかなっと思ったんですが、よく考えると違ったという…。
お気を付けください!