Vue.jsで配列内の金額を合計したい
Q&A
Closed
やりたいこと
Vue.jsでアプリを作っています。
script部分で、dataのmenusをランダムにシャッフルして、HTML部分に4つ抽出して表示させています。
その抽出された4つのmenuのpriceを合計して表示させたいのが、今回の目的です。
現状のコードとエラー内容
今書けているのが以下のコードです。
totalpriceが、抽出された4つのmenuではなく、また別にランダムで抽出された別menuの合計priceになってしまっていて困っています。
どのようにすれば、該当の4つの合計を表示させられますでしょうか?
お知恵をお借りいただけますと幸いです。
<li class="list-group-item list-group-item-light" v-for="i in 4">
{{menus[i].name}} ・・・{{menus[i].price}}円(税別)
</li>
<li class="list-group-item list-group-item-success">
合計金額は<b>{{totalprice}}</b>円(税別)です!
</li>
<script>
const app = new Vue({
el: '#app',
data: {
show: false,
menus: [
{ name: "チキンカレー", price: 650 },
{ name: "マトンカレー", price: 850 },
{ name: "ダル", price: 600 },
{ name: "グンドゥルック・コ・ジョル", price: 700 },
//数が多いので省略
{ name: "マネロティ", price: 500 },
{ name: "ライス", price: 280 },
]
},
methods: {
gacha: function() {
this.menus.sort(() => Math.random() - 0.5);
this.show = true;
},
},
computed: {
totalprice: function() {
let total = 0;
for(let i=0; i<=3; i++) {
total += this.menus[i].price;
}
return total;
},
}
})
</script>
0