关注
学到了,楼主实现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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 满分简历要如何准备? #
3755次浏览 67人参与
# 我想去国央企的原因 #
51273次浏览 260人参与
# 携程求职进展汇总 #
196703次浏览 1588人参与
# 实习要如何选择和准备? #
1871次浏览 40人参与
# 机械人值得去的车企 #
12409次浏览 66人参与
# 字节求职进展汇总 #
693163次浏览 7028人参与
# 我心目中的理想工作是这样的 #
52707次浏览 693人参与
# 运营面经 #
90573次浏览 1108人参与
# 第一份工作应该选高薪还是热爱? #
35432次浏览 239人参与
# 机械人的offer怎么选 #
123988次浏览 673人参与
# 应届生初入职场,求建议 #
165012次浏览 2358人参与
# 扒一扒那些奇葩实习经历 #
15276次浏览 335人参与
# 参加完秋招的机械人,还参加春招吗? #
32733次浏览 348人参与
# 哪些公司校招卡第一学历 #
49394次浏览 182人参与
# 牛友打假中心 #
23629次浏览 1556人参与
# 讲讲我的真实离职原因 #
31331次浏览 477人参与
# 为什么国企只招应届生 #
151465次浏览 1058人参与
# 德州仪器求职进展汇总 #
2562次浏览 104人参与
# 工作两年想退休了 #
96051次浏览 990人参与
# 许愿池 #
251636次浏览 2715人参与
# 2025开工大吉 #
81223次浏览 394人参与