关注
学到了,楼主实现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
相关推荐
查看19道真题和解析
点赞 评论 收藏
分享
码农烧烤启动:写熟悉源码不怕被问穿吗佬
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
314114次浏览 2880人参与
# 上班苦还是上学苦呢? #
65546次浏览 543人参与
# 阿里云管培生offer #
34783次浏览 415人参与
# 地方国企笔面经互助 #
4160次浏览 12人参与
# 如何一边实习一边秋招 #
994016次浏览 12649人参与
# 选完offer后,你后悔学本专业吗 #
20912次浏览 150人参与
# 百度开奖 #
174074次浏览 1093人参与
# 如果有时光机,你最想去到哪个年纪? #
19119次浏览 287人参与
# 学历or实习经历,哪个更重要 #
52404次浏览 413人参与
# 海康威视求职进展汇总 #
399811次浏览 3406人参与
# 正在实习的你,几点下班 #
52655次浏览 394人参与
# 国央企薪资爆料 #
10165次浏览 76人参与
# 米哈游求职进展汇总 #
176597次浏览 1463人参与
# 得物求职进展汇总 #
66900次浏览 685人参与
# 租房前辈的忠告 #
109170次浏览 5229人参与
# 美的求职进展汇总 #
206933次浏览 1619人参与
# 2023毕业生求职有问必答 #
120846次浏览 1302人参与
# 机械制造秋招总结 #
30378次浏览 353人参与
# 投递实习岗位前的准备 #
1180724次浏览 18401人参与
# 我的实习求职记录 #
6063430次浏览 83493人参与
# 软开人,秋招你打算投哪些公司呢 #
43328次浏览 543人参与
# 秋招拿一个offer可以躺平吗 #
106097次浏览 815人参与