ES6简单map结构实现

ES6简单map结构实现


class myMap{
	constructor(obj){
		this.obj = {}
        this.length = 0
        if(Array.isArray(obj)){
            obj.every((item, index, arr) => {
                if(Array.isArray(item)){
                    this.obj[item[0]] = item[1]
                    this.length += 1
                    return true
                }else{
                    this.obj = {}
                    this.length = 0
                    return false
                }
            })
        }
    }

    has(key){
        return this.obj.hasOwnProperty(key)
    }

    size(){
        return this.length
    }

    get(key){
        if(this.has(key)){
            return this.obj[key]
        }
    }

    set(key, value){
        if(this.has(key)){
            this.obj[key] = value
        }else{
            this.obj[key] = value
            this.length += 1
        }
        return this
    }

    keys(){
        return Object.keys(this.obj)
    }

    values(){
        return Object.values(this.obj)
    }

    entries(){
        return Object.entries(this.obj)
    }

    delete(key){
        if(this.has(key)){
            this.length -= 1
            delete this.obj[key]
        }
        return this
    }

    clear(){
        this.obj = {}
        this.length = 0
        return this
    }
}

let my_Map = new myMap()
my_Map.set('foo', true).set('foo2', false).set('foo2', 1)
console.log(my_Map);

let map = new Map()
map.set('foo', true)
map.set('foo2', false)
console.log(map);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值