前提・実現したいこと
オブジェクトから不揃いなキーを指定してソートしたいです。
該当のソースコード
下記オブジェクト「lists」は別のオブジェクトから抽出されたものでして、3種類の「x_num」「y_num」「z_num」があります。(必ずいずれかが存在します。)
const lists = [ {name: 'berry', x_num: '1' }, {name: 'apple', y_num: '3' }, {name: 'melon', z_num: '2' } ];
このオブジェクトに対して「●_numでソートしたい」となった場合、どのようにすればよろしいでしょうか?
(恐れ入りますがjQuery寄りなコードで教えて頂けますと幸いです。)
試したこと
現状は下記で「name」を指定しており、['apple','berry','melon'] の順でソートされます。
お聞きしたいのはこれを「●_num」で指定する方法で、つまり ['apple','melon','berry'] の順で取得したいということです。
jquery
1 2 3 4function getSortKey(){ 5 return 'name'; // 「name」ならできるが、これを「●_num」でソートしたい 6} 7 8function sortObj(a, b) { 9 10 const sortKey = getSortKey(); 11 12 const genreA = a[sortKey].toUpperCase(); 13 const genreB = b[sortKey].toUpperCase(); 14 15 let comparison = 0; 16 if (genreA > genreB) { 17 comparison = 1; 18 } else if (genreA < genreB) { 19 comparison = -1; 20 } 21 return comparison; 22} 23 24const result = lists.sort(sortObj); 25console.log(result);
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/08 07:04