本文へスキップ
BecomeCoder

JavaScriptコース · 第3章 コレクション ― 複数の値をまとめる · レッスン12

Set と Map ― 重複なし・キーと値

ブラウザで完結

導入

配列オブジェクト以外にも、用途に特化した入れ物があります。Set は重複のない集合、Map は任意のキーと値の対応表です。

説明

Set は同じ値を1つしか持ちません。追加は add、含むかは has です。

const tags = new Set(["js", "html", "js", "css"]);
console.log(tags);            // Set { "js", "html", "css" }(重複除去)
console.log(tags.size);       // 3
tags.add("node");
console.log(tags.has("html")); // true

配列の重複除去にも使えます。

const raw = [1, 2, 2, 3, 1];
const unique = [...new Set(raw)];
console.log(unique);  // [1, 2, 3]

Map はキーと値のペアを持ちます。オブジェクトと違い、キーに文字列以外(数値など)も使えます。

const scores = new Map();
scores.set("太郎", 90);
scores.set("花子", 85);
console.log(scores.get("太郎"));  // 90
console.log(scores.has("次郎"));  // false
console.log(scores.size);         // 2

やってみよう

好きな単語の Set や、名前と点数の Map を作って操作してみましょう。

演習

const ids = [1, 3, 1, 2, 3]; の重複を除いた配列を Set を使って作り、表示してください。

ヒント1を見る

console.log([...new Set(ids)]);

実際に動かしてみよう

下のエディタにJavaScriptを書いて「実行」を押すと、ブラウザ内のJavaScriptで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(console.log の結果が下に出ます。input() を使う回は「標準入力」欄に値を入れてから実行します)。

JavaScript — ブラウザ内で実行

ブラウザ本体のJavaScriptで実行する学習用環境を読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。