const data_new = [
{ 2000: [ { jan: { sales: 2345, }, }, { feb: { sales: '1890 units', }, }, { mar: { sales: 3210, }, }, { apr: { sales: '2756 units', }, }, { may: { sales: 1987, }, }, { jun: { sales: 3450, }, }, { jul: { sales: '4200 units', }, }, { aug: { sales: 3875, }, }, { sept: { sales: 2980, }, }, { oct: { sales: '3150 units', }, }, { nov: { sales: 4320, }, }, { dec: { sales: 5100, }, }, ], 2001: [ { jan: [ { week1: { sales: 845, }, week2: { sales: '920 units', }, week3: { sales: 1050, }, week4: { sales: '1230 units', }, }, ], }, { feb: { sales: 2450, }, }, { mar: { sales: '3100 units', }, }, { apr: { sales: 2890, }, }, { may: { sales: 3240, }, }, { jun: { sales: '3560 units', }, }, { jul: { sales: 4120, }, }, { aug: { sales: '4350 units', }, }, { sept: { sales: 3980, }, }, { oct: { sales: 4210, }, }, { nov: { sales: '4780 units', }, }, { dec: { sales: 5240, }, }, ], }, ];
can you please give total sales data in 2000 and 2001 in js ?
JavaScript function that calculates the total sales for the years 2000 and 2001 while handling the mixed format of numbers and string values:
const data_new = [
{
2000: [
{ jan: { sales: 2345 } },
{ feb: { sales: '1890 units' } },
{ mar: { sales: 3210 } },
{ apr: { sales: '2756 units' } },
{ may: { sales: 1987 } },
{ jun: { sales: 3450 } },
{ jul: { sales: '4200 units' } },
{ aug: { sales: 3875 } },
{ sept: { sales: 2980 } },
{ oct: { sales: '3150 units' } },
{ nov: { sales: 4320 } },
{ dec: { sales: 5100 } },
],
2001: [
{ jan: [{ week1: { sales: 845 }, week2: { sales: '920 units' }, week3: { sales: 1050 }, week4: { sales: '1230 units' } }] },
{ feb: { sales: 2450 } },
{ mar: { sales: '3100 units' } },
{ apr: { sales: 2890 } },
{ may: { sales: 3240 } },
{ jun: { sales: '3560 units' } },
{ jul: { sales: 4120 } },
{ aug: { sales: '4350 units' } },
{ sept: { sales: 3980 } },
{ oct: { sales: 4210 } },
{ nov: { sales: '4780 units' } },
{ dec: { sales: 5240 } },
],
},
];
// Function to calculate total sales
const calculateTotalSales = (data, year) => {
let totalSales = 0;
data.forEach(entry => {
if (entry[year]) {
entry[year].forEach(monthData => {
Object.values(monthData).forEach(salesObj => {
if (Array.isArray(salesObj)) {
// Handle nested weekly data
salesObj.forEach(weekData => {
Object.values(weekData).forEach(weekSalesObj => {
let sales = parseInt(weekSalesObj.sales);
if (!isNaN(sales)) totalSales += sales;
});
});
} else {
let sales = parseInt(salesObj.sales);
if (!isNaN(sales)) totalSales += sales;
}
});
});
}
});
return totalSales;
};
console.log("Total sales in 2000:", calculateTotalSales(data_new, 2000));
console.log("Total sales in 2001:", calculateTotalSales(data_new, 2001));
This function:
- Iterates through the given year's data.
- Extracts sales values, ensuring they are converted to numbers even if stored as strings.
- Handles nested weekly data (like January 2001).
- Computes and prints the total sales for each year.
No comments:
Post a Comment