[解決済み] null 値が常に最後に来るように配列を並べ替える
2023-03-27 05:41:43
質問
文字列の配列をソートしたいのですが、NULLが常に最後になるようにしたいのです。例えば、配列が
var arr = [a, b, null, d, null]
昇順でソートする場合、次のようにソートされる必要があります。
[a, b, d, null, null]
のようにソートされ、降順にソートされる場合は、次のようにソートされる必要があります。
[d, b, a, null, null]
.
これは可能ですか?私は下にある解決策を試しましたが、私が必要とするものとは全く違います。
どのように文字列と数値を比較することができますか(負の値を尊重し、NULLは常に最後とする)?
どのように解決するのですか?
チェックアウト
.sort()
で、カスタムソートでやってみましょう。
例
function alphabetically(ascending) {
return function (a, b) {
// equal items sort equally
if (a === b) {
return 0;
}
// nulls sort after anything else
else if (a === null) {
return 1;
}
else if (b === null) {
return -1;
}
// otherwise, if we're ascending, lowest sorts first
else if (ascending) {
return a < b ? -1 : 1;
}
// if descending, highest sorts first
else {
return a < b ? 1 : -1;
}
};
}
var arr = [null, 'a', 'b', null, 'd'];
console.log(arr.sort(alphabetically(true)));
console.log(arr.sort(alphabetically(false)));
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] 配列の最後の項目を取得する
-
[解決済み] 整数の配列を正しくソートする方法
-
[解決済み] オブジェクトの配列を日付のプロパティでソートする方法は?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】オブジェクトの配列をプロパティ値でソートする
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?