3

たとえば、最初の文字列sがの場合"0123456789"、目的の出力は配列になり["01", "23", "45", "67", "89"]ます。

JavaScript で洗練されたソリューションを探しています。

私が考えていたのは(非常にエレガントではありません)、空の文字列で分割し、Array.forEach メソッドを使用して文字列を反復処理し、2 文字ごとに区切り記号を挿入してから、その区切り記号で分割することです。これは良い解決策ではありませんが、私の出発点です。

編集: RegExp ソリューションが投稿されました。他のアプローチがないかどうかを確認したいと思います。

4

2 に答える 2

6

どうですか:

var array = ("0123456789").match(/\w{1,2}/g);

ここでは.match()、文字列に対して を使用して、任意の 2 つまたは単一の ( {1,2}) 単語文字 ( \w) に一致させ、結果の配列を返します。


非正規表現ソリューションの編集について; 次のように、はるかに洗練されていない関数を実行できます。

String.prototype.getPairs = function()
{
    var pairs = [];
    for(var i = 0; i < this.length; i += 2)
    {
        pairs[pairs.length] = this.substr(i, 2);
    }

    return pairs;
}

var array = ("01234567890").getPairs();
于 2013-04-15T02:18:19.607 に答える