关注
学到了,楼主实现es6实现Set没考虑对象的键只能是字符串的问题,还有forEach()方法,第三个参数是mySet本身,这里改进了下楼主的代码:
class mySet {
constructor(optionsArr = []){
if(!(optionsArr instanceof Array)) throw Error('参数只能为数组')
this.list = {}
this.size = optionsArr.length
optionsArr.forEach(val => {
this.list[val] = val
})
}
add(val){
if(!this.list[val]) {
this.list[val] = val
this.size++
return true
}
return false
}
has(val){
if(val !== null &;&;typeof val === 'object') return false
return this.list.hasOwnProperty(val)
}
delete(val){
if(this.list[val]) {
delete this.list[val]
this.size--
return true
}
return false
}
clear(){
this.list = {}
this.size = 0
}
keys(){
return Object.values(this.list)
}
values(){
return Object.values(this.list)
}
entries(){
return Object.entries(this.list).map(item => {
item[0] = item[1]
return item
})
}
forEach(callback){
let keys = this.keys()
for(let i = 0;i<keys.length;i++) {
callback(keys[i],keys[i],this)
}
}
}
查看原帖
1 1
相关推荐
胡毛毛:河师大的佬?有没有听说河南科技学院的三月软件
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java 
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如何准备秋招 #
8495次浏览 150人参与
# 软开人,秋招你打算投哪些公司呢 #
100368次浏览 941人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
21224次浏览 181人参与
# 你觉得实习能学到东西吗 #
12318次浏览 301人参与
# 秋招什么时候开投比较合适? #
5075次浏览 110人参与
# 实习,不懂就问 #
24175次浏览 369人参与
# 每个月的工资都是怎么分配的? #
11921次浏览 272人参与
# 你觉得现在还能进互联网吗? #
3855次浏览 91人参与
# 技术岗笔试题求解 #
75271次浏览 974人参与
# 预测一下26届秋招形势 #
19772次浏览 207人参与
# 你最近一次加班是什么时候? #
67587次浏览 346人参与
# 高考出分的那一天,我__ #
13703次浏览 230人参与
# 打工人的精神状态 #
53200次浏览 966人参与
# 米哈游工作体验 #
17500次浏览 116人参与
# 机械实习一天多少钱合适? #
28678次浏览 176人参与
# 你觉得实习只能是打杂吗? #
191964次浏览 1211人参与
# 聊聊你的职场新体验 #
161103次浏览 1389人参与
# 来聊聊你认为的薪资天花板是哪家? #
30656次浏览 174人参与
# 安利/避雷我的专业 #
75802次浏览 522人参与
# 牛客十周岁生日快乐 #
144801次浏览 1609人参与
# 你们公司几号发工资 #
18667次浏览 116人参与