Exercise 1: Safe Number Input (string → number) + Sum

Problem Statement

Create a function `sum(a, b)` that accepts inputs as string or number. The function should strictly convert to number and return the sum. Return `null` for invalid input. Example: - sum("10", "5") → 15 - sum("10a", 5) → null

Sample Output:

sum("10","5") => 15
sum("10a",5) => null

Solution

const toNum = (v) => {
  const n = Number(v);
  return Number.isFinite(n) ? n : null;
};

const sum = (a, b) => {
  const x = toNum(a), y = toNum(b);
  return x === null || y === null ? null : x + y;
};

Explanation

Overall Goal:

  • User se input string ya number me aa sakta hai (form inputs hamesha string hote hain).
  • Safely number me convert karke add karna hai.
  • Invalid input (jaise "10a") ho to null return karna hai.

Line 1-2: Helper function `toNum`

  • const toNum = (v) => { → ek helper function jo kisi bhi value ko safely number me convert karega.
  • const n = Number(v);Number() constructor use karke conversion try karte hain.
  • Number("10") → 10 (valid number)
  • Number("10a") → NaN (Not a Number, invalid)
  • Number(5) → 5 (already number, same hi return)

Line 3: Validation

  • return Number.isFinite(n) ? n : null;
  • Number.isFinite(n) check karta hai:
  • Agar n ek finite number hai (10, 5.5, -3) → true
  • Agar n NaN ya Infinity hai → false
  • Ternary operator ? : → valid ho to n return, warna null.

Line 5-6: Main `sum` function

  • const sum = (a, b) => { → main function jo dono inputs ko add karega.
  • const x = toNum(a), y = toNum(b); → dono inputs ko toNum se convert karke x aur y me store.
  • Comma operator , use kiya hai taaki ek line me dono variables declare kar sakein.

Line 7: Final check aur addition

  • return x === null || y === null ? null : x + y;
  • x === null || y === null → agar koi bhi input invalid ho (null aaya ho)
  • Agar koi invalid hai → null return (safe failure).
  • Agar dono valid hain → x + y return (normal addition).

Real world:

  • Form inputs hamesha string me aate hain (document.getElementById("input").value).
  • User "10a" type kar sakta hai, isliye validation zaroori hai.
  • E-commerce carts, calculators, age verification me ye pattern daily use hota hai.

Navigation

Previous

No previous exercise

Next

Exercise 2

View All Categories