投递蚂蚁集团等公司10个岗位 >
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)
}
}
}
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
投递携程等公司10个岗位 >
0 点赞 评论 收藏
分享
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
投递携程等公司10个岗位 >
0 点赞 评论 收藏
分享
slowFever:lz好棒
投递小米集团等公司10个岗位 >
0 点赞 评论 收藏
分享
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
不怕酸的酸柠檬精:楼主好强啊
投递哔哩哔哩等公司10个岗位 >
0 点赞 评论 收藏
分享
想吃芒果冰啊:请问有笔试吗,还是直接面试
投递小米集团等公司10个岗位 >
0 点赞 评论 收藏
分享
牛客513330295号:这是我这些天看到最难的面试啦
投递哔哩哔哩等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: