[解決済み】Javascript : 英数字の文字列の自然なソート
2022-04-04 07:46:51
質問
数字とテキスト、およびこれらの組み合わせからなる配列をソートする最も簡単な方法を探しています。
例
'123asd'
'19asd'
'12345asd'
'asd123'
'asd12'
に変わります。
'19asd'
'123asd'
'12345asd'
'asd12'
'asd123'
の解決策と組み合わせて使用することになります。 ここで質問した別の質問 .
ソート機能自体は動作しますが、必要なのは「19asd」が「123asd」よりも小さいと言える機能です。
JavaScriptで書いています。
編集:として 概要 ご指摘の通り、私が求めているのは自然なソートのための機能です。
どのように解決するのですか?
モダンブラウザでは、localeCompareを使用することで可能になりました。を渡すことで
numeric: true
オプションを使用すると、数字をスマートに認識することができます。大文字・小文字を区別しない場合は
sensitivity: 'base'
. Chrome、Firefox、IE11でテストしています。
以下はその例です。これは
1
つまり、2の次には10が来るということです。
'10'.localeCompare('2', undefined, {numeric: true, sensitivity: 'base'})
大量の文字列をソートする際のパフォーマンスのために、記事によると
大きな配列のソートなど、大量の文字列を比較する場合は、Intl.Collatorオブジェクトを作成し、そのcompareプロパティが提供する関数を使用する方がよいでしょう。 ドキュメントリンク
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
var myArray = ['1_Document', '11_Document', '2_Document'];
console.log(myArray.sort(collator.compare));
関連
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】module.exports "モジュールが定義されていません"
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 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" というエラーが発生する。
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】中央値の計算 - javascript