js
1const list = [ 2 {name: "テスト太郎1", connectNumber: null, day: 1}, 3 {name: "テスト太郎2", connectNumber: 1, day: 2}, 4 {name: "テスト太郎3", connectNumber: null, day: 3}, 5 {name: "テスト太郎4", connectNumber: 22, day: 4}, 6 {name: "テスト太郎5", connectNumber: null, day: 5}, 7 {name: "テスト太郎6", connectNumber: 2, day: 6}, 8 ]; 9 10 consoale.log( list.sort((i1,i2)=>i1.connectNumber === null ? -1 : +1) ); 11// 結果 12[ 13 { name: 'テスト太郎5', connectNumber: null, day: 5 }, 14 { name: 'テスト太郎3', connectNumber: null, day: 3 }, 15 { name: 'テスト太郎1', connectNumber: null, day: 1 }, 16 { name: 'テスト太郎2', connectNumber: 1, day: 2 }, 17 { name: 'テスト太郎4', connectNumber: 22, day: 4 }, 18 { name: 'テスト太郎6', connectNumber: 2, day: 6 } 19] 20 21consoale.log( list.sort((i1,i2)=>i2.connectNumber === null ? -1 : +1) ); 22// 結果 23[ 24 { name: 'テスト太郎2', connectNumber: 1, day: 2 }, 25 { name: 'テスト太郎4', connectNumber: 22, day: 4 }, 26 { name: 'テスト太郎6', connectNumber: 2, day: 6 }, 27 { name: 'テスト太郎5', connectNumber: null, day: 5 }, 28 { name: 'テスト太郎3', connectNumber: null, day: 3 }, 29 { name: 'テスト太郎1', connectNumber: null, day: 1 } 30]
現在上記のような挙動をするsortロジックがあるのですが、dayを数字順に並べ替えたいです。
期待値
consoale.log( list.sort((i1,i2)=>i1.connectNumber === null ? -1 : +1) ); // 結果 [ { name: 'テスト太郎1', connectNumber: null, day: 1 }, { name: 'テスト太郎3', connectNumber: null, day: 3 }, { name: 'テスト太郎5', connectNumber: null, day: 5 }, { name: 'テスト太郎2', connectNumber: 1, day: 2 }, { name: 'テスト太郎4', connectNumber: 22, day: 4 }, { name: 'テスト太郎6', connectNumber: 2, day: 6 } ] consoale.log( list.sort((i1,i2)=>i2.connectNumber === null ? -1 : +1) ); // 結果 [ { name: 'テスト太郎2', connectNumber: 1, day: 2 }, { name: 'テスト太郎4', connectNumber: 22, day: 4 }, { name: 'テスト太郎6', connectNumber: 2, day: 6 }, { name: 'テスト太郎1', connectNumber: null, day: 1 } { name: 'テスト太郎3', connectNumber: null, day: 3 }, { name: 'テスト太郎5', connectNumber: null, day: 5 }, ]
期待値のようにするにはどのようにすればよいでしょうか?
connectNumberがnullの中で日付け順、それ以外で日付け順とする方法がわかりませんでした。
何卒よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/23 13:22