
0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
2022-03-31 17:01
西南石油大学 前端工程师 一世长安_:学到了,楼主实现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)
}
}
}

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
slowFever:
lz好棒

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
不怕酸的酸柠檬精:楼主好强啊

0 点赞 评论 收藏
分享
想吃芒果冰啊:请问有笔试吗,还是直接面试

0 点赞 评论 收藏
分享
牛客51333029...:这是我这些天看到最难的面试啦

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: