关注
学到了,楼主实现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
相关推荐
点赞 评论 收藏
分享
昨天 14:32
浙江科技大学 Java 点赞 评论 收藏
分享
02-12 20:58
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 有转正机会的小厂实习值得去吗? #
3474次浏览 49人参与
# 工作不开心辞职是唯一出路吗 #
7379次浏览 25人参与
# xx岗简历求拷打 #
2104次浏览 24人参与
# 实习期间如何提升留用概率? #
241040次浏览 1822人参与
# 你最讨厌面试被问什么 #
4562次浏览 54人参与
# 联想求职进展汇总 #
334850次浏览 2220人参与
# 非技术er求职现状 #
138879次浏览 821人参与
# 牛客租房专区 #
158231次浏览 1826人参与
# 哪些公司开春招了? #
30079次浏览 194人参与
# 如何缓解入职前的焦虑 #
261645次浏览 1468人参与
# 金三银四,你有感觉到吗 #
688961次浏览 6074人参与
# 大家每天通勤多久? #
87794次浏览 902人参与
# 开工第一帖 #
4888次浏览 101人参与
# 哪些公司主动和你打招呼? #
78217次浏览 366人参与
# 掌握什么AI技能,会为你的求职大大加分 #
2490次浏览 100人参与
# 记录实习开销 #
188844次浏览 1037人参与
# 毕业季等于分手季吗 #
54579次浏览 649人参与
# 你觉得今年春招回暖了吗 #
930470次浏览 7229人参与
# 牛友们,签完三方你在忙什么? #
138018次浏览 1003人参与
# 正在实习的你,几点下班 #
301419次浏览 2277人参与