26
私はthis answerを確認したが、同じ結果を達成するために、それは大文字と小文字を区別しないソートを得ることです、私はそれがソート順を指定することができます以来orderBy
の代わりsortBy
を使用する必要があります。Lodash:orderByを使って大文字小文字を区別しないコレクションのソートを行う方法は?
私はそれを達成するために見つけた唯一の方法は小文字にマッピングされたクローン化された「中間の」配列を作成することでした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);
これは本当に高価なようで、それも複数のソーティングと、より複雑になり、動的プロパティ名。
良いアイデアはありますか?ここで
はPlunkerです:https://plnkr.co/edit/i1ywyxjFctuNfHtPTcgG
これは古いブラウザでは失敗する可能性があります。 – steampowered
これは、ES6をサポートしていないブラウザで構文エラーが発生する場合はもちろん、はいです。読者のエクササイズとして、矢印関数を「通常の」関数(そして 'const'から' var')に変換しておきます。 –
これは動的なプロパティ名で機能しますか? – TheCaptan