Code Input
JavaScript
42 lines
Code Analysis
3 issues
Potential Performance Issue
Array length accessed in loop condition - store in variable
Line 2, 9
Redundant Code
Similar loop patterns in calculateSum and findMax
Lines 1-7, 8-14
Error Handling
No validation for empty array in processData
Line 15
Code Quality Score
72%
Refactor Code
Ready
Refactoring Options
Estimated time: 3 seconds
Refactored Code Preview
// Refactored code with improvements
function calculateSum(arr) {
if (!arr.length) return 0;
return arr.reduce((total, num) => total + num, 0);
}
function findMax(arr) {
if (!arr.length) return -Infinity;
return Math.max(...arr);
}
function processData(data) {
if (!data || !data.length) {
console.warn('Empty or undefined data provided');
return {};
}
const sum = calculateSum(data);
const max = findMax(data);
const average = sum / data.length;
console.log('Sum:', sum);
console.log('Max:', max);
console.log('Average:', average);
return { sum, max, average };
}
// Example usage
const sampleData = [12, 45, 67, 23, 89, 34, 56];
processData(sampleData);