使用 JavaScript 检查 Map 是否具有对象键
要检查 Map 是否具有对象键,请调用 has()
方法,将对象的引用传递给它,例如 map.has(obj)
。 如果对象键包含在 Map 中,则 has()
方法将返回 true,否则返回 false。
const obj = {country: 'Chile'};
const map1 = new Map([[obj, {city: 'Santiago'}]]);
// ✅ ( BEST ) - With reference
console.log(map1.has(obj)); // 👉️ true
console.log(map1.get(obj)); // 👉️ {city: 'Santiago'}
// -------
let hasKey = false;
for (const [key, value] of map1) {
if (typeof key === 'object' && key.country === 'Chile') {
hasKey = true;
break;
}
}
console.log(hasKey); // 👉️ true
我们使用 Map.has 方法来检查 Map 是否具有对象键。
请注意
,我们通过引用has()
方法传递了对象。 如果我们传递包含相同键/值对的对象,这将不起作用,因为它会存储在内存中的不同位置。
const obj = {country: 'Chile'};
const map1 = new Map([[obj, {city: 'Santiago'}]]);
console.log(map1.has({country: 'Chile'})); // 👉️ false
JavaScript 对象通过引用进行比较,而不是通过它们的内容进行比较。
// 👇️️ false
console.log({country: 'Chile'} === {country: 'Chile'});
// 👇️️ true
console.log(obj === obj);
如果我们没有对该对象的引用,请使用 for...of
循环遍历 Map 并检查对象键是否存在。
const map1 = new Map([[{country: 'Chile'}, {city: 'Santiago'}]]);
let hasKey = false;
for (const [key, value] of map1) {
if (typeof key === 'object' && key.country === 'Chile') {
hasKey = true;
break;
}
}
console.log(hasKey); // 👉️ true
for...of
循环遍历数组、字符串和映射等可迭代对象。
在每次迭代中,我们检查当前键是否是一个对象并包含等于智利的国家/地区属性。
如果不需要,则不必解构值变量。
在确认对象键存在后,我们使用 break 关键字退出循环,避免不必要的工作。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法