关注
学到了,楼主实现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
相关推荐
04-17 23:19
门头沟学院 前端工程师 点赞 评论 收藏
分享
04-03 11:03
深圳技术大学 Web前端 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 国企还是互联网,你怎么选? #
122435次浏览 945人参与
# 找工作,行业重要还是岗位重要? #
8349次浏览 105人参与
# 五一之后,实习真的很难找吗? #
46864次浏览 337人参与
# 盲审过后你想做什么? #
12963次浏览 116人参与
# 应届生进小公司有什么影响吗 #
67230次浏览 984人参与
# 小厂实习有必要去吗 #
42342次浏览 260人参与
# 领导秒批的请假话术 #
10179次浏览 76人参与
# 外包能不能当跳板? #
22268次浏览 191人参与
# 设计人如何选offer #
98566次浏览 690人参与
# 五一假期,你打算“躺”还是“卷”? #
33437次浏览 452人参与
# 考研可以缓解求职焦虑吗 #
21541次浏览 252人参与
# 如果校招重来我最想改变的是 #
245319次浏览 2781人参与
# 蚂蚁集团工作体验 #
10813次浏览 70人参与
# 面试等了一周没回复,还有戏吗 #
115953次浏览 1078人参与
# 大疆的机械笔试比去年难吗 #
69714次浏览 603人参与
# 找工作前vs找工作后的心路变化 #
7245次浏览 64人参与
# 硬件人,你被哪些公司给挂了 #
46879次浏览 724人参与
# 如果有时光机,你最想去到哪个年纪? #
43421次浏览 770人参与
# 一句话证明你在找工作 #
291836次浏览 2394人参与
# 秋招前后对offer的期望对比 #
271913次浏览 2075人参与