如何计算数组中的总数?

我将数据作为props 传递给子组件,我被困在这里.当我控制台log prop时,它返回一个非常复杂的对象.我try 了this.values.reduce()个功能,但不起作用.

<template>
<tr v-for="value in values"  >
      <th scope="row">{{$index+1}}</th>
      <td>{{value.name}}</td>
      <td>-</td>
      <td>${{value.total}}</td>
    </tr>
<tr>
    <th></th>
    <td><strong>Total:{{total}}</strong></td>
    <td>-</td>
    <td>-</td>
    </tr>
</template>

<script>

export default {



    props: ['values'],

      ready: function() {

    }

}
</script>

推荐答案

如果其他人和我处于同样的情况,我想我会补充这个答案.我需要从嵌套对象中获取值,然后在减少它们之前将它们推送到数组中:

total: function(){

  let total = [];

  Object.entries(this.orders).forEach(([key, val]) => {
      total.push(val.price) // the value of the current key.
  });

  return total.reduce(function(total, num){ return total + num }, 0);

}

这将使用ES7 .entries在对象中循环,如下所示:

orders = {
    1: {title: 'Google Pixel', price: 3000},      
    2: {title: 'Samsung Galaxy S8', price: 2500},
    3: {title: 'iPhone 7', price: 5000}
  }

然后,您可以使用以下选项在模板中显示总数:

<span> {{total}} </span>

Vue.js相关问答推荐

在VueJS中卸载元素之前是否应该删除JavaScript事件收件箱?

Vue路由路径匹配行为

Pinia+Vue 3状态react 性-StoreToRef的替代方案

如何以惯用的方式触发 vue3 中同级组件的效果?

如何 for each 动态创建的按钮/文本字段设置唯一变量?

如何渲染数组以 Select 选项 vue.js

在组件的样式部分使用 Vue 变量

Vue.js + Vuex:如何改变嵌套项状态?

VueJS 组件中的图像未加载

单击链接会更改 url,但不会更改页面上的内容/数据

Vue&TypeScript:在项目目录外的 TypeScript 组件中实现导入时如何避免错误 TS2345?

Vuejs模板继承

我可以在 Vue 实例方法中传播的 mapMutations 中使用this吗?

如何更改 Vuetify 日历日期格式

Nuxt.js - API 调用的最佳场所

错误:Node Sass 尚不支持您当前的环境:Linux 64-bit with Unsupported runtime (88)

异步方法不等待函数

如何确定 Vue 何时完成更新 DOM?

'vue' 未被识别为内部或外部命令

Vuejs css 范围性能