javascript数据结构之集合

javascript数据结构之集合,第1张

一般来说,集合我们常常在js中称之为数组,ES6中的是 Set,实现一个常用的 Set

一、首先定义一个 变量来存储数据集合


class Set {
  // 首先定义一个集合来存放对应的数据
  constructor() {
    this.items = {}
  }
}

接下来是实现对应的方法

add 添加数据方法

/**
 * 存入数据
 * @param {*} value 待存入的数据
 * @returns boolean
 */
add(value) {
  if (this.has(value)) { return false }
  this.items[value] = value
}

has 查询是否存在该集合

/**
 * 判断该数据是否在该集合中
 * @param {*} value 待判断的数据
 * @returns 是否存在
 */
has(value) {
  return this.items.hasOwnProperty(value)
}

remove 移除方法

/**
 * 移除对应的元素
 * @param {*} value 待移除的元素
 * @returns boolean
 */
remove(value) {
  if (!this.has(value)) return false
  return delete this.items[value]
}

一些其他方法

/**
 * 清空集合
 */
clear() {
  this.items = {}
  }
/**
 * 返回集合长度
 * @returns number
 */
size() {
  return Object.keys(this.items).length
}
values() {
  return Object.keys(this.items)
}

整体


/**
 * 集合
 */

class Set {
  constructor() {
    this.items = {}
  }
  /**
   * 存入数据
   * @param {*} value 待存入的数据
   * @returns 存入成功或失败
   */
  add(value) {
    if (this.has(value)) { return false }
    this.items[value] = value
  }
  /**
   * 判断该数据是否在该集合中
   * @param {*} value 待判断的数据
   * @returns 是否存在
   */
  has(value) {
    return this.items.hasOwnProperty(value)
  }
  /**
   * 移除对应的元素
   * @param {*} value 待移除的元素
   * @returns 是否移除成功
   */
  remove(value) {
    if (!this.has(value)) return false
    return delete this.items[value]
  }
  /**
   * 清空集合
   */
  clear() {
    this.items = {}
  }
  /**
   * 返回集合长度
   * @returns number
   */
  size() {
    return Object.keys(this.items).length
  }
  values() {
    return Object.keys(this.items)
  }
}
export default Set

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1296457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存