JavaScript Map စမ်းသပ်ခြင်း
new Map() 方法
可以通过将数组传递给 new Map()
构造函数来创建 Map:
အက်စ်တင်
// Map ကို ကိုယ်စားပြု const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
Map.get()
အသုံးပြု နိုင် get()
方法获取 Map 中键的值:
အက်စ်တင်
fruits.get("apples");
Map.set()
အသုံးပြု နိုင် set()
方法向 Map 添加元素:
အက်စ်တင်
// 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()
သုံးစွဲသည့် တိကျသော အချက်အလက် သုံးစွဲသည့် စကားလုံးများ စာရင်း
အက်စ်တင်
// ကိုးကွယ်သည့် စကားလုံးများ စာရင်း let text = ""; for (const x of fruits.keys()) { text += x; }
Map.values()
values()
ဘက်ဒ်စ် ဘက်တင် က Map အပေါ် ကို အစားထိုး
အက်စ်တင်
// အစိုးရ အား စာရင်းလုံး ပြုလုပ် let text = ""; for (const x of fruits.values()) { text += x; }
အသုံးပြု နိုင် values()
ဘက်ဒ်စ် ဘက်တင် က Map အပေါ် ကို ပေါင်းစပ်
အက်စ်တင်
// အစိုးရ အား အပေါ်ထား ပြီး အရေအတွက် ပေါင်းစပ် let total = 0; for (const x of fruits.values()) { total += x; }
အစိုးရ အား အသုံးပြု
အကြောင်းကြားချက်Map က အစိုးရ အား အသုံးပြု နိုင်သည် ကို အဓိက ရှိသည်
အက်စ်တင်
// အစိုးရ ကို ကိုယ်စားပြု const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Map ကို ကိုယ်စားပြု const fruits = new Map(); // Map ကို အသစ် အစိုးရ ပြုလုပ် fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
အကြောင်းကြားချက်ကြောင်းကို အစိုးရ အား ပြန်လည်ပေးသည် (apples) အချက်အလက် ကို အစိုးရ အား ပြန်လည်ပေးသည် ("apples")
အက်စ်တင်
fruits.get("apples"); // အဆိုပါ အသုံးပြု မရသည်
JavaScript Map.groupBy() ပြုလုပ်ခဲ့သည်
ES2024 က ဂျာမိုက်စ် ကို Map.groupBy()
ဘက်ဒ်စ် ဘက်တင်
Map.groupBy()
ဘက်ဒ်စ် ဘက်တင် က အသုံးပြု ပြီး အပိုင်းစက် ကို အုပ်ချုပ်ကြောင်း ပြန်လည်ပေးသည်။
Map.groupBy()
ဘက်ဒ်စ် ဘက်တင် မှာ အစိုးရ မပြောင်းလဲပါ။
အက်စ်တင်
// စက်တင် အသင်း ကို const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // အုပ်ချုပ်ကြောင်း အသုံးပြု function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // အရေအတွက် အုပ်ချုပ်ကြောင်း 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 参考手册
如需完整参考,请访问我们的:ဂျေဟိုစ် မှုန် စာရင်း。
该手册包含所有 Map 属性和方法的描述和实例。