[解決済み】JavaScriptで大きな文字列をn個のチャンクに分割する。
2022-04-03 23:34:09
質問
非常に大きな文字列(例えば10,000文字)をN個の大きさの塊に分割したい。
これを行うには、パフォーマンスの面でどのような方法が最適でしょうか?
例えば
"1234567890"
を 2 で分割すると、次のようになります。
["12", "34", "56", "78", "90"]
.
を使えば、こんなことができるのでしょうか?
String.prototype.match
また、その場合、パフォーマンスの点から見て、その方法が最適なのでしょうか?
どのように解決するのですか?
次のような方法があります。
"1234567890".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "90"]
このメソッドは、サイズがチャンクサイズの正確な倍数でない文字列でも機能します。
"123456789".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "9"]
一般に、文字列のうち、最も多く抽出したい文字列は n -の大きさの部分文字列を作成することになります。
str.match(/.{1,n}/g); // Replace n with the size of the substring
文字列が改行やキャリッジリターンを含むことができる場合、あなたはそうするでしょう。
str.match(/(.|[\r\n]){1,n}/g); // Replace n with the size of the substring
パフォーマンスとしては、約10k文字で試したところ、Chromeで1秒ちょっとかかりました。YMMVです。
これは、再利用可能な関数でも使用することができます。
function chunkString(str, length) {
return str.match(new RegExp('.{1,' + length + '}', 'g'));
}
関連
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー