当前位置:首页 > JavaScript

js实现的集合

2026-04-07 08:04:06JavaScript

集合的概念

集合是一种无序且不重复的数据结构,常用于存储唯一值。JavaScript 原生未提供专门的集合类型,但可通过以下方式实现:

js实现的集合

使用 Set 对象(ES6+)

ES6 引入的 Set 对象是原生集合实现,支持添加、删除、查找等操作:

js实现的集合

const set = new Set();
set.add(1);          // 添加元素
set.add(2);
set.add(1);          // 重复值会被忽略
console.log(set);    // 输出: Set {1, 2}

set.delete(2);       // 删除元素
console.log(set.has(1)); // 检查存在性: true
console.log(set.size);   // 获取元素数量: 1

使用对象模拟集合

ES5 或更早版本可通过对象键的唯一性模拟集合:

const set = {};
set['key1'] = true;  // 添加元素
set['key2'] = true;
set['key1'] = true;  // 重复键会被覆盖

delete set['key2'];  // 删除元素
console.log('key1' in set); // 检查存在性: true
console.log(Object.keys(set).length); // 获取元素数量

集合操作示例

  • 并集:合并两个集合,去除重复值
    const union = (setA, setB) => new Set([...setA, ...setB]);
  • 交集:获取两个集合的共同元素
    const intersection = (setA, setB) => 
      new Set([...setA].filter(x => setB.has(x)));
  • 差集:获取仅存在于第一个集合的元素
    const difference = (setA, setB) => 
      new Set([...setA].filter(x => !setB.has(x)));

注意事项

  • Set 对象允许存储任何类型的唯一值(包括对象引用)。
  • 对象模拟集合时,键会被自动转换为字符串,可能引发类型问题。
  • Set 提供迭代方法(如 forEach),而对象模拟需手动处理。

根据需求选择原生 Set 或对象模拟,优先推荐 Set 以实现更清晰的代码逻辑。

标签: js
分享给朋友:

相关文章

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…