Method Map JavaScript
new Map() 方法
可以通过将数组传递给 new Map()
构造函数来创建 Map:
实例
// membuat Map const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
Map.get()
dapat digunakan get()
方法获取 Map 中键的值:
实例
fruits.get("apples");
Map.set()
dapat digunakan set()
方法向 Map 添加元素:
实例
// membuat Map const fruits = new Map(); // 设置 Map 值 fruits.set("apples", 500); fruits.set("bananas", 300); fruits.set("oranges", 200);
set()
方法也可以用于更改现有的 Map 值:
实例
fruits.set("apples", 500);
Map.size
size
属性返回 Map 中元素的数量:
实例
fruits.size;
Map.delete()
delete()
方法移除 Map 中的一个元素:
实例
fruits.delete("apples");
Map.clear()
clear()
方法移除 Map 中的所有元素:
实例
fruits.clear();
Map.has()
如果 Map 中存在某个键,has()
方法返回 true:
实例
fruits.has("apples");
尝试以下代码:
fruits.delete("apples"); fruits.has("apples");
Map.forEach()
forEach()
方法为 Map 中的每个键值对调用回调函数:
实例
// 列出所有条目 let text = ""; fruits.forEach(function(value, key) { text += key + ' = ' + value; });
Map.entries()
entries()
方法返回一个包含 Map 中 [key, value] 对的迭代器对象:
实例
// 列出所有条目 let text = ""; for (const x of fruits.entries()) { text += x; }
Map.keys()
keys()
方法返回一个包含 Map 中键的迭代器对象:
实例
// 列出所有键 let text = ""; for (const x of fruits.keys()) { text += x; }
Map.values()
values()
metoden mengembalikan sebuah objek iterator yang mengandung nilai dalam Map:
实例
// menampilkan semua nilai let text = ""; for (const x of fruits.values()) { text += x; }
dapat digunakan values()
metoden menjumlahkan nilai dalam Map:
实例
// menjumlahkan semua nilai let total = 0; for (const x of fruits.values()) { total += x; }
objek sebagai kunci
tunjuk:kemampuan untuk menggunakan objek sebagai kunci adalah sifat penting dari Map.
实例
// membuat objek const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // membuat Map const fruits = new Map(); // menambahkan elemen baru ke Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
perhatian:kunci adalah objek (apples), bukan string ("apples"):
实例
fruits.get("apples"); // kembalikan undefined
JavaScript Map.groupBy()
ES2024 menambahkan ke JavaScript Map.groupBy()
metoden.
Map.groupBy()
metoden mengelompokkan elemen objek berdasarkan nilai string yang dipilih kembali oleh fungsi balik.
Map.groupBy()
metoden ini tidak akan mengubah objek asli.
实例
// membuat sebuah array const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // fungsi balik untuk pengelompokkan function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // mengelompokkan berdasarkan jumlah const result = Map.groupBy(fruits, myCallback);
浏览器支持
Map.groupBy()
是 ES2024 的特性。
自 2024 年 3 月起,新浏览器均支持该特性:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
2023 年 9 月 | 2023 年 9 月 | 2023 年 10 月 | 2024 年 10 月 | 2023 年 5 月 |
警告:
ES2024 特性相对较新。
旧版浏览器可能需要替代代码(Polyfill)。
Object.groupBy() 与 Map.groupBy() 的区别
Object.groupBy()
和 Map.groupBy()
的区别在于:
Object.groupBy()
将元素分组到 JavaScript 对象中。
Map.groupBy()
将元素分组到 Map 对象中。
完整的 Map 参考手册
如需完整参考,请访问我们的:JavaScript Map 参考手册。
该手册包含所有 Map 属性和方法的描述和实例。