关注
学到了,楼主实现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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
2922次浏览 75人参与
# 刚工作,应该先搞钱or搞成长? #
20788次浏览 159人参与
# 牛客AI体验站 #
15555次浏览 276人参与
# 你觉得第一学历对求职有影响吗? #
229933次浏览 1266人参与
# 找工作中的小确幸 #
80373次浏览 448人参与
# 实习在多还是在精 #
82744次浏览 509人参与
# 你觉得技术面多长时间合理? #
168071次浏览 1170人参与
# 月薪多少能在一线城市生存 #
136387次浏览 898人参与
# 牛友的春节生活 #
11582次浏览 223人参与
# 选了这个offer,你有没有后悔? #
738425次浏览 4472人参与
# 备战春招/暑实,现在应该做什么? #
7763次浏览 201人参与
# 从夯到拉,锐评职场mentor #
7590次浏览 108人参与
# 实习到现在,你最困惑的一个问题 #
6763次浏览 165人参与
# 春招什么时候投? #
13049次浏览 208人参与
# 制造业的秋招小结 #
143346次浏览 2089人参与
# 电网笔面经互助 #
59666次浏览 476人参与
# 秋招踩过的“雷”,希望你别再踩 #
185663次浏览 1683人参与
# 你有哪些缓解焦虑的方法? #
51149次浏览 906人参与
# 春节提前走,你用什么理由请假? #
13333次浏览 288人参与
# 距离春招还有一个月,你现在是什么开局? #
9265次浏览 132人参与


查看4道真题和解析