Collections
Map: キーがない時だけ既定値を登録する
Map.has と Map.set を組み合わせ、存在しないキーにだけ初期値を保存します。
SourcevisitCounts.ts
Node.js 22
export function registerDefault(visits: Map<string, number>, page: string): number {
if (!visits.has(page)) visits.set(page, 0);
return visits.get(page)!;
}TestvisitCounts.test.ts
Node.js 22
import assert from "node:assert/strict";
import test from "node:test";
import { registerDefault } from "../../src/map/visitCounts.js";
test("存在しないキーには既定値が登録される", () => {
const visits = new Map<string, number>([["ts", 4]]);
assert.equal(registerDefault(visits, "node"), 0);
assert.equal(registerDefault(visits, "ts"), 4);
assert.equal(visits.get("node"), 0);
});01Assertion
このテストで確認できること
- 存在しないキーへ初期値を保存する
- すでにあるキーの値を置き換えない
Map.get の undefined だけでは、未登録と undefined 値を区別できません。既定値を保存するなら has を使います。
OBSERVED RESULT
expected: visits.get("ts") → 0
actual: 0