[解決済み] Lodash : orderByを使って大文字小文字を区別せずにソートするには?
2022-11-14 08:30:45
質問
私は
この回答
を確認しましたが、同じ結果、つまり大文字小文字を区別しない並べ替えを行うには
orderBy
の代わりに
sortBy
から
を使うことで、ソート順を指定することができます。
.
私が見つけた唯一の方法は、小文字にマッピングされたクローン "middle"配列を作成することで、それを達成することでした。
name
:
const users = [
{ name: 'A', age: 48 },
{ name: 'B', age: 34 },
{ name: 'b', age: 40 },
{ name: 'a', age: 36 }
];
let lowerCaseUsers = _.clone(users);
lowerCaseUsers = lowerCaseUsers.map((user) => {
user.name = user.name.toLowerCase();
return user;
});
const sortedUsers = _.orderBy(lowerCaseUsers, ['name'], ['desc']);
console.log(sortedUsers);
これは本当に高くつきそうで、複数のソートや動的なプロパティ名でさらに複雑になりそうです。
もっと良いアイデアはないでしょうか?
プランカーはこちらです。 https://plnkr.co/edit/i1ywyxjFctuNfHtPTcgG
どのように解決するのですか?
この ドキュメント は、関数を "iteratee"として渡すことができることを指定しています。
[iteratees=[_.identity]]です。(Array[]|Function[]|Object[]|string[])を指定します。ソートするためのiteratees。
というわけで、以下のようなことができます。
const users = [
{ name: 'A', age: 48 },
{ name: 'B', age: 34 },
{ name: 'b', age: 40 },
{ name: 'a', age: 36 }
];
const sortedUsers = _.orderBy(users, [user => user.name.toLowerCase()], ['desc']);
console.log(sortedUsers);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
関連
-
[解決済み] JavaScriptで文字列の配列を大文字小文字を区別せずに並べ替えるには?
-
[解決済み] Javascriptで文字列の最後の文字を切り取るにはどうしたらいいですか?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] 大文字・小文字を区別しない文字列比較を行うには?
-
[解決済み] jQueryを使用してdivのinnerHTMLを置き換えるには?
-
[解決済み] 大文字・小文字を区別せず含む
-
[解決済み】Lodashで2つのオブジェクトを深く比較する方法は?
-
[解決済み】大文字・小文字を区別しない検索機能
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] 変異を伴わないオブジェクトからの値の削除