一般来说,集合我们常常在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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)