闹鬼的很,昨天本来是写了这个集合的,结果检测死活报错,说我constructor用法不对,不用class写的时候则显示没有hasOwnProperty 函数...昨天各种翻书上网求助,都不行。结果今天打开电脑改都没改试了一下,不报错了,一遍成功....绝了
'use strict'
// 集合
// 集合不能重复元素
class Set {
constructor () {
this.items = {};
}
// 确认是否有值,有则返回true,无则返回false
has (element) {
return this.items.hasOwnProperty(element)
}
// 向集合添加值
add (element) {
if (!this.has(element)) {
this.items[element] = element
return true
} else {
return null
}
}
// 移除值
remove (element) {
// 查看该位置是否有元素
// 有则true 无则false
if (this.has(element)) {
delete this.items[element]
return '移除成功'
}
return '移除失败'
}
// 移除所有值
clear () {
this.items = {};
return '清除成功!'
}
// 返回大小1
size () {
return Object.keys(this.items).length
}
// 返回所有值
values () {
return Object.keys(this.items);
}
}
// 测试
let set = new Set ()
set.add(1)
set.add(2)
set.add(3)
set.add(4)
set.add(5)
console.log('集合大小为:' + set.size());
console.log('集合移除1:' + set.remove(1));
console.log('集合大小为:' + set.size());
console.log('1确认是否有值:' + set.has(1));
console.log('2确认是否有值:' + set.has(2));
console.log('展示所有值:' + set.values(2));
console.log('清除所有值:' + set.clear());
console.log('集合大小为:' + set.size());
网友评论