当前位置:首页 > JavaScript

js实现set

2026-02-01 12:15:11JavaScript

JavaScript 实现 Set 数据结构

在 JavaScript 中,Set 是一种集合数据结构,用于存储唯一值。以下是几种实现 Set 的方法:

js实现set

使用原生 ES6 Set

ES6 提供了内置的 Set 对象,可以直接使用:

js实现set

const mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(1); // 重复值会被忽略

console.log(mySet.has(1)); // true
console.log(mySet.size); // 2

手动实现 Set

如果需要手动实现一个 Set,可以使用对象或数组来模拟:

function CustomSet() {
  this.items = {};
}

CustomSet.prototype.add = function(value) {
  if (!this.has(value)) {
    this.items[value] = value;
    return true;
  }
  return false;
};

CustomSet.prototype.has = function(value) {
  return this.items.hasOwnProperty(value);
};

CustomSet.prototype.delete = function(value) {
  if (this.has(value)) {
    delete this.items[value];
    return true;
  }
  return false;
};

CustomSet.prototype.size = function() {
  return Object.keys(this.items).length;
};

// 使用示例
const set = new CustomSet();
set.add(1);
set.add(2);
console.log(set.size()); // 2

使用数组实现 Set

另一种方式是使用数组来存储唯一值:

function ArraySet() {
  this.items = [];
}

ArraySet.prototype.add = function(value) {
  if (this.items.indexOf(value) === -1) {
    this.items.push(value);
    return true;
  }
  return false;
};

ArraySet.prototype.has = function(value) {
  return this.items.indexOf(value) !== -1;
};

ArraySet.prototype.delete = function(value) {
  const index = this.items.indexOf(value);
  if (index !== -1) {
    this.items.splice(index, 1);
    return true;
  }
  return false;
};

ArraySet.prototype.size = function() {
  return this.items.length;
};

性能比较

  • ES6 Set 是最高效的实现,底层优化良好。
  • 对象实现的 CustomSet 适合键为字符串或简单类型的场景。
  • 数组实现的 ArraySet 在频繁查找或删除时性能较差。

选择哪种实现取决于具体需求。现代开发中推荐直接使用 ES6 Set

标签: jsset
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…