I'm using vue-cli and I'm trying to figure out how I can get the total numbers of active in Tasks array.
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
Any help would be great, thanks!
You need iterate through tasks array, filter active items and sum it with reduce method:
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)