JavaScript 中检查 Set 是否包含数组
使用 has()
方法检查 Set 是否包含数组,例如 set.has(arr)
。 必须通过对 has 方法的引用来传递数组以获得可靠的结果。 has 方法测试 Set 中是否存在某个值,如果该值包含在 Set 中则返回 true。
const arr = ['one'];
const set1 = new Set([arr, ['two']]);
console.log(set1.has(arr)); // 👉️ true
我们通过引用 Set.has
方法传递了一个数组,以检查该数组是否包含在 Set 中。
请注意
,数组必须通过引用传递给has
方法。 按值传递数组是行不通的。
const arr = ['one'];
const set1 = new Set([arr, ['two']]);
console.log(set1.has(['one'])); // 👉️ false
这是因为我们正在检查的数组在内存中的不同位置并且具有完全不同的引用。
如果我们没有对要检查的数组的引用,则可以使用 for...of
循环遍历 Set 并检查特定数组的存在。
const set1 = new Set([['one', 'two'], ['three']]);
let containsArray = false;
const checkForArr = ['one', 'two'];
for (const arr of set1) {
if (arr.toString() === checkForArr.toString()) {
containsArray = true;
break;
}
}
console.log(containsArray); // 👉️ true
我们初始化了一个 containsArray
变量并将其设置为 false。 for...of
循环允许我们遍历 Set 并检查特定数组是否包含在其中。
我们使用 Array.toString()
方法来获取包含数组元素的字符串。 仅当两个数组具有相同顺序的相同元素时,这才会评估为真。
console.log(['one', 'two'].toString()); // 👉️ "one,two"
// 👇️ true
console.log(
['one', 'two'].toString() === ['one', 'two'].toString()
);
// 👇️ false
console.log(
['one', 'two'].toString() === ['two', 'one'].toString()
);
如果找到数组,我们使用 break
关键字退出循环并避免不必要的工作。
有一种方法可以让我们获得对数组的引用,使用
has
方法性能更高,尤其是当数组接近 Set 的末尾或根本不包含在 Set 中时。
相关文章
使用 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 中获取字符串最后一个字符的方法