{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}} のような文字列があります。ペアの配列の配列を取得する必要があります {number 、 番号}。
それを行う最良の方法は何ですか?
{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}} のような文字列があります。ペアの配列の配列を取得する必要があります {number 、 番号}。
それを行う最良の方法は何ですか?
入力はほとんど配列構文のように見えるため、すべての中括弧を角括弧に置き換えて有効な配列を取得できます。
var string = '{{1,2}, {2,3}}';
JSON.parse(string.replace(/}/g, ']').replace(/\{/g, '['));
// >>> [[1,2],[2,3]]
JSON.parse
文字列を解析していたことに注意してください。
入力にコンマで区切られた複数の が含まれている場合は、{..}
中括弧を追加します: '[' + .. + ']'
. そうしないと、目的の結果が得られないresult = [1,2],[4,5];
のような結果が得られます。
さまざまな方法で行うことができます。中かっこを角かっこに置き換えたり、すべての文字を調べて配列を開いたり閉じたりしたかどうかを追跡するパーサーを自分で作成したり、文字列に対して複数のループを実行して、その中のパターンに基づいて文字列を分割したりできます。 .
例えば。最初のループ - }},{{ で分割します。これはトップ レベルでのみ発生するためです。
2 番目のループ - },{ でそれぞれ分割
console.log(JSON.parse("["+("{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}}"
.replace(/{/g,'[').replace(/}/g,']'))+"]"));
this { を this [ および this } を this ] に置き換えてから、json として解析してみませんか?