Write a callback where it is used.

inline-callback An inline callback keeps the transformation next to the array method. It can still read nearby variables such as `bonus`.

Inline Callbacks

bonus
inline_callback.js
Replay: real traced execution (multi-file project)
const bonus = 1;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);

console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
const bonus = 3;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);

console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
const bonus = 5;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);

console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
  1. bonus ← 1, scores ← 10,20,30, adjusted ← 11,21,31

    1const bonus→ 1 = 1; //@bonus=3, 52const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 11,21,31 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus1);6console.log("adjusted=" + adjusted11,21,31.join(","));
    outputbonus=1
    adjusted=11,21,31
  1. bonus ← 3, scores ← 10,20,30, adjusted ← 13,23,33

    1const bonus→ 3 = 3;2const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 13,23,33 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus3);6console.log("adjusted=" + adjusted13,23,33.join(","));
    outputbonus=3
    adjusted=13,23,33
  1. bonus ← 5, scores ← 10,20,30, adjusted ← 15,25,35

    1const bonus→ 5 = 5;2const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 15,25,35 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus5);6console.log("adjusted=" + adjusted15,25,35.join(","));
    outputbonus=5
    adjusted=15,25,35