如何在 JavaScript 集合中判断某个值是否存在?


在 JavaScript 中,我们可能会使用一些集合来保存一些对象。有时我们想要检查某个元素是否存在于集合中。在本文中,我们将了解检查某个元素是否在给定集合中的不同技术。

使用 for 循环的简单方法

首先,我们可以通过手动选择一个元素并检查它是否与关键元素相同来搜索元素。如果是,则简单返回 true,否则在完成所有元素后返回 false。

示例

<!DOCTYPE html> <html> <head> <title>HTML Console</title> </head> <body> <h3> Output Console </h3> <p> Output: </p> <div id="output"> </div> <div id="opError" style="color : #ff0000"> </div> <script> var content = '' var error = '' var opDiv = document.querySelector('#output') var opErrDiv = document.querySelector('#opError') // actual javascript code try { // Creating a promise const mySet = new Set(['one', 'two', 3, 4, 5, 'SIX', '7']); function searchInSet(set, key) { for (const element of mySet) { if (element === key) { return true; } } return false; } content += "Is 4 present in the set: " + JSON.stringify(searchInSet(mySet, 4)) + "<br>"; content += "Is '7' present in the set: " + JSON.stringify(searchInSet(mySet, '7')) + "<br>"; content += "Is 40 present in the set: " + JSON.stringify(searchInSet(mySet, 40)) + "<br>"; } catch (err) { error += err } finally { // display on output console opDiv.innerHTML = content opErrDiv.innerHTML = error } </script> </body> </html>

使用 has() 函数

JavaScript Set 类有一个名为 has() 的属性,此函数检查给定元素是否存在于当前集合中。如果存在,则返回 true,否则返回 false。

语法

set_object.has(key)

示例

<!DOCTYPE html> <html> <head> <title>HTML Console</title> </head> <body> <h3> Output Console </h3> <p> Output: </p> <div id="output"> </div> <div id="opError" style="color : #ff0000"> </div> <script> var content = '' var error = '' var opDiv = document.querySelector('#output') var opErrDiv = document.querySelector('#opError') // actual javascript code try { // Creating a promise const s = new Set(); s.add('java'); content += "Is java present? " + JSON.stringify(s.has('java')) + "<br>"; // returns true as java is present content += "Is javascript present?" + JSON.stringify(s.has('javascript')) + "<br>"; // returns false because this is not present const s1 = new Set(); const ob1 = { 'c++': 1 }; s1.add(ob1); content += "ob1 is in the set? " + JSON.stringify(s1.has(ob1)) + "<br>"; // returns true content += "C++ is in the set? " + JSON.stringify(s1.has({ 'c++': 1 })) + "<br>"; // returns false because they are different object references } catch (err) { error += err } finally { // display on output console opDiv.innerHTML = content opErrDiv.innerHTML = error } </script> </body> </html>

结论

在本文中,我们了解了如何检查给定元素是否存在于集合对象中。我们可以通过逐个检查每个元素来手动执行此操作。此过程也可用于数组和其他数据结构,但在集合中,不会存在重复元素。另一种更简单的方法是使用 has() 函数,该函数随 JavaScript 中的 Set 对象一起提供。当对象存在于集合中时,它直接返回 true,否则返回 false。

更新于: 2022年8月23日

97 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告