6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScript の String.prototype.split() の第二引数 limit は、ほかの言語と意味が違う

Last updated at Posted at 2019-02-21

(この記事は 地平線に行く とのマルチポストです)

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 には「見つかった分割結果の数の制限を指定する整数です。」と書かれています。
パッと読んだ感じほかの言語と同じかなっと思ったんですが、よく考えると違ったという…。

お気を付けください!

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?