vueのv-forを使ってリストの一覧を出し、名前が重複する都市はまとめ、
さらに重複した分だけ件数を数えて表示させたいと考えております。
Jsonデータ
[ { id:121, city: Osaka } { id:123, city: Fukuoka } { id:425, city: Osaka } { id:645, city: Tokyo } { id:326, city: Osaka } { id:876, city: Tokyo } { id:456, city: Osaka } { id:335, city: Osaka } { id:471, city: Tokyo } { id:345, city: Osaka } { id:857, city: Fukuoka } { id:455, city: Osaka } { id:997, city: Osaka } { id:121, city: Tokyo } { id:115, city: Osaka } { id:668, city: Fukuoka } // 実際はcityの市は100種類以上ある ... ]
HTML
<ul class="item" v-for=“area in data” :key="area.id"> // 何らかの処理 <li>{{area.city}}</li> </ul> 表示結果(まとめる前) Osaka Fukuoka Osaka Osaka Tokyo … やりたい表示結果(まとめた後) Osaka(9) Fukuoka(3) Tokyo(4) …
尚、cityの市の種類分フィルターリストを作成し、あらかじめHTMLにcityの市の種類分のタグを設定しておけば表示が可能と考えましたが、cityの市の種類が100以上あり下記やり方は効率的ではないと思っており、できればv-forなどで回した上でさらにリストを整形する方法があれば教えていただきたいです。
現状で考えたコード
computed: { OsakaCount: function() { // この処理をcityの市の種類分記載する必要あり var newList = []; for (var i = 0; i < this.data.length; i++) { isShow = false; if (this.data == 'Osaka') { isShow = true; } } return newList; } } <ul > <li>大阪({{OsakaCount.lenght}})</li> <li>福岡({{FukuokaCount.lenght}})</li> // HTMLにcityの市の種類分のタグをあらかじめ記載しておく必要あり </ul>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/06 02:50
2020/03/06 02:55
2020/03/06 03:27
2020/03/06 06:45