嵌套数组 Vue 中的总计

Total in nested array Vue

我正在使用 vue-cli,我正在尝试弄清楚如何获得 Tasks 数组中的活动总数。

Tasks: [ 
            {name: 'Sam',  available: [{active: 'yes', day:'Mon'},{active: 'yes', day:'Tues'}]},
            {name: 'Yoko', available: [{active: 'yes', day:'Mon'}]},
            {name: 'Alec', available: [{active: 'yes', day:'Wed'},{active: 'yes', day:'Thurs'}]},
            {name: 'Pat',  available: [{active: 'yes', day:'Tues'},{active: 'yes', day:'Thurs'} ]}
       ]
 
Expected output:
Total: 7

任何帮助都会很棒,谢谢!

您需要遍历任务数组,过滤活动项目并使用 reduce 方法求和:

const tasks = [ 
  {name: 'Sam',  available: [{active: 'yes', day:'Mon'},{active: 'yes', day:'Tues'}]},
  {name: 'Yoko', available: [{active: 'yes', day:'Mon'}]},
  {name: 'Alec', available: [{active: 'yes', day:'Wed'},{active: 'yes', day:'Thurs'}]},
  {name: 'Pat',  available: [{active: 'yes', day:'Tues'},{active: 'yes', day:'Thurs'} ]}
];

const total = tasks.reduce((sum, task) => {
    return sum + (task.available.filter(item => item.active === 'yes')).length
}, 0)