将表格行中的两项相加

Posted

技术标签:

【中文标题】将表格行中的两项相加【英文标题】:Sum two items in table row 【发布时间】:2019-09-13 00:11:40 【问题描述】:

我正在使用 Vue 整理一个简单的报价页面,我试图将同一行中的两个项目相加。我尝试使用计算属性,但我在格式上苦苦挣扎。根据我的示例,我应该如何格式化以显示每行的支出和价格总和?

new Vue(
  el: '#search',
  data: 
    items: [
       province: "Alberta", disbursement: 1, price: 300 ,
       province: "British Columbia", disbursement: 1, price: 75 ,
       province: "Manitoba", disbursement: 1, price: 10 ,
       province: "New Brunswick", disbursement: 1, price: 10 ,
       province: "Newfoundland & Labrador", disbursement: 1, price: 10 ,
       province: "Nova Scotia", disbursement: 1, price: 10 ,
       province: "Northwest Territories", disbursement: 1, price: 10 ,
       province: "Nunavut", disbursement: 1, price: 10 ,
       province: "Ontario", disbursement: 1, price: 10 ,
       province: "Prince Edward Island", disbursement: 1, price: 10 ,
       province: "Quebec", disbursement: 1, price: 10 ,
       province: "Saskatchewan", disbursement: 1, price: 10 ,
       province: "Yukon", disbursement: 1, price: 10 ,
    ]
  ,

computed: 
    total: function() 
    return parseInt(this.items.disbursement) +
        parseInt(this.items.price);



);

我的 html 格式是这样的

<tr v-for="item in items">
    <th scope="row"><input type="text" v-model="item.province"/></th>
    <td>$<input type="number" v-model="item.price"/></td>
    <td>$<input type="number" v-model="item.disbursement"/></td>    
    <td>$total</td>
</tr>

我正在尝试在总数中添加 items.disbursement + items.price

【问题讨论】:

VueJS How can I use computed property with v-for的可能重复 【参考方案1】:

听起来您需要迭代“项目”并对每个“项目”的属性求和。

以下代码将返回一个整数数组,但您可以根据需要设置数组值的格式,只需编辑 map 函数返回的内容。

computed: 
    total: function() 
      return this.items.map(i => 
        return parseInt(i.disbursement) + parseInt(i.price)
      

【讨论】:

以上是关于将表格行中的两项相加的主要内容,如果未能解决你的问题,请参考以下文章

sql将同一个表中的两列Int数据相加,有些数据是空的

将选定表格行中的输入字段推入数组以循环

如何获取表格行中的所有 HtmlInputText 控件?

对斐波那契数列的理解

显示表格行中的替代列

cut命令