実現したいこと
typescript内でprismaのdataをソートする処理を実装しています。
テーブルの中身をソートしてまとまりを作って表示させたいです。
このようなデータがあるとして
[
{
date: 2024/02/02,
company_name: 株式会社A,
type: 送信
},
{
date: 2024/02/03,
company_name: 株式会社B,
type: 送信
},
{
date: 2024/02/03,
company_name: 株式会社C,
type: 受信
},
{
date: 2024/02/05,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/07,
company_name: 株式会社A,
type: 受信
},
{
date: 2024/02/02,
company_name: 株式会社A,
type: 受信
},
{
date: 2024/02/07,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/05,
company_name: 株式会社B,
type: 受信
},
{
date: 2024/02/07,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/07,
company_name: 株式会社D,
type: 送信
},
]
こちらのデータを新しい日付→会社名(同じ会社名がまとまるように)→typeも受信が上で送信が下に来るようにソートをしたいです。ソート後は以下を想定
{
date: 2024/02/07,
company_name: 株式会社A,
type: 受信
},
{
date: 2024/02/07,
company_name: 株式会社A,
type: 送信
},
{
date: 2024/02/07,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/07,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/05,
company_name: 株式会社B,
type: 受信
},
{
date: 2024/02/05,
company_name: 株式会社D,
type: 送信
},
{
date: 2024/02/03,
company_name: 株式会社B,
type: 送信
},
{
date: 2024/02/03,
company_name: 株式会社C,
type: 受信
},
{
date: 2024/02/02,
company_name: 株式会社A,
type: 送信
},
{
date: 2024/02/02,
company_name: 株式会社A,
type: 受信
},
発生している問題・分からないこと
sortがうまくいかずどのように複数の項目をsort関数のreturn 1 ,-1などでソートしていいか分かりません。
該当のソースコード
Typescript
1sort((a, b) => { 2 if (a.date < b.date) { 3 if (a.company_name < b.company_name) { 4 if (a.type < b.type) { 5 return 1; 6 } 7 return 1; 8 } 9 return 1; 10 } else { 11 if (a.company_name < b.company_name) { 12 if (a.type < b.type) { 13 return 1; 14 } 15 return -1; 16 } 17 return -1; 18 } 19}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
sortの複数の仕方など調べました。
補足
sortのreturnがこんがらがってよくわからなくなっています。申し訳ございません。

回答2件
あなたの回答
tips
プレビュー