Use a Set to count distinct values.

set-unique A `Set` keeps only one copy of each value. Its `.size` tells you how many distinct values remain.

Unique Values

color
set_unique.js
Replay: real traced execution (multi-file project)
const color = "red";
const uniqueCount = new Set([color, "blue", color, "red"]).size;

console.log("color=" + color);
console.log("unique=" + uniqueCount);
const color = "blue";
const uniqueCount = new Set([color, "blue", color, "red"]).size;

console.log("color=" + color);
console.log("unique=" + uniqueCount);
const color = "green";
const uniqueCount = new Set([color, "blue", color, "red"]).size;

console.log("color=" + color);
console.log("unique=" + uniqueCount);
  1. color ← red, uniqueCount ← 2

    1const color→ red = "red"; //@color="blue", "green"2const uniqueCount→ 2 = new Set([colorred, "blue", colorred, "red"]).size;34console.log("color=" + colorred);5console.log("unique=" + uniqueCount2);
    outputcolor=red
    unique=2
  1. color ← blue, uniqueCount ← 2

    1const color→ blue = "blue";2const uniqueCount→ 2 = new Set([colorblue, "blue", colorblue, "red"]).size;34console.log("color=" + colorblue);5console.log("unique=" + uniqueCount2);
    outputcolor=blue
    unique=2
  1. color ← green, uniqueCount ← 3

    1const color→ green = "green";2const uniqueCount→ 3 = new Set([colorgreen, "blue", colorgreen, "red"]).size;34console.log("color=" + colorgreen);5console.log("unique=" + uniqueCount3);
    outputcolor=green
    unique=3