Calculating resistance of n devices - JavaScript

In Physics, the equivalent resistance of resistors varies based on their connection type. When resistors are connected in series, their resistances add directly:

R_series = R1 + R2 + R3

For parallel connections, we use the reciprocal formula:

1/R_parallel = (1/R1) + (1/R2) + (1/R3)

We need to create a JavaScript function that calculates equivalent resistance for any number of resistors in either series or parallel configuration.

Series Connection Implementation

For series resistors, we simply sum all resistance values:

const calculateSeries = (...resistors) => {
    return resistors.reduce((total, resistance) => total + resistance, 0);
};

// Test with 3 resistors
console.log("Series (5?, 7?, 9?):", calculateSeries(5, 7, 9) + "?");
Series (5?, 7?, 9?): 21?

Parallel Connection Implementation

For parallel resistors, we calculate the sum of reciprocals, then take the reciprocal of the result:

const calculateParallel = (...resistors) => {
    const reciprocalSum = resistors.reduce((sum, resistance) => sum + (1/resistance), 0);
    return 1 / reciprocalSum;
};

// Test with same resistors
console.log("Parallel (5?, 7?, 9?):", calculateParallel(5, 7, 9).toFixed(3) + "?");
Parallel (5?, 7?, 9?): 2.268?

Complete Solution

Here's the complete function that handles both connection types:

const equivalentResistance = (combination = 'series', ...resistors) => {
    if (resistors.length === 0) return 0;
    
    if (combination === 'parallel') {
        const reciprocalSum = resistors.reduce((sum, resistance) => {
            return sum + (1/resistance);
        }, 0);
        return 1 / reciprocalSum;
    }
    
    // Default to series connection
    return resistors.reduce((total, resistance) => total + resistance, 0);
};

// Test both configurations
const r1 = 5, r2 = 7, r3 = 9;

console.log("Series resistance:", equivalentResistance('series', r1, r2, r3) + "?");
console.log("Parallel resistance:", equivalentResistance('parallel', r1, r2, r3).toFixed(3) + "?");

// Test with different values
console.log("Parallel (10?, 20?):", equivalentResistance('parallel', 10, 20).toFixed(2) + "?");
Series resistance: 21?
Parallel resistance: 2.268?
Parallel (10?, 20?): 6.67?

Comparison of Connection Types

Connection Type Formula Result (5?, 7?, 9?)
Series R? + R? + R? 21?
Parallel 1/(1/R? + 1/R? + 1/R?) 2.268?

Key Points

  • Series connections increase total resistance
  • Parallel connections decrease total resistance below the smallest individual resistor
  • The function uses rest parameters (...resistors) to accept any number of resistance values
  • Always validate input to avoid division by zero in parallel calculations

Conclusion

This function efficiently calculates equivalent resistance for both series and parallel configurations. Series adds resistances directly, while parallel requires reciprocal calculations to find the equivalent value.

Updated on: 2026-03-15T23:18:59+05:30

278 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements