js实现map对象的基本操作方法


function myMap(a) {
        this.element = new Array()
        for (let i = 0; i < a.length; i++) {
            console.log(a[i][1])
            let obj = {}
            obj.key = a[i][0]
            obj.value = a[i][1]
            this.element.push(obj)
        }
        this.size = function() {
            console.log(this.element)
            return this.element.length
        }
        this.isEmpty = function() {
            return this.element.length < 1 ? true : false
        }
        this.clear = function() {
            this.element = new Array()
        }
        this.hasKey = function(key) {
            let flag = false
            for (let i = 0; i < this.element.length; i++) {
                if (this.element[i].key == key) {
                    flag = true
                }
            }
            return flag
        }
        this.hasValue = function(value) {
            let flag = false
            for (let i = 0; i < this.element.length; i++) {
                if (this.element[i].value == value) {
                    flag = true
                }
            }
            return flag
        }
        this.put = function(key, value) {
            if (this.hasKey(key) == true) {
                this.element[this.element.indexOf(key)].value = value
            } else {
                this.element.push({
                    key: key,
                    value: value
                })
            }
        }
        this.remove = function(key) {
            let flag = false
            for (let i = 0; i < this.element.length; i++) {
                if (this.element[i].key == key) {
                    this.element.splice(i, 1)
                    flag = true
                }
            }
            return flag
        }
        this.get = function(key) {
            let result = null
            for (let i = 0; i < this.element.length; i++) {
                if (this.element[i].key == key) {
                    result = this.element[i].value
                }
            }
            return result
        }
        this.values = function() {
            let arr = new Array()
            for (let i = 0; i < this.element.length; i++) {
                arr.push(this.element[i].value)
            }
            return arr
        }
        this.keys = function() {
            let arr = new Array()
            for (let i = 0; i < this.element.length; i++) {
                arr.push(this.element[i].key)
            }
            return arr
        }
        this.getIndex = function(key) {
            let index = null
            for (let i = 0; i < this.element.length; i++) {
                if (this.element[i].key == key) {
                    index = i
                }
            }
            return index
        }
    }
    let a = [
        ['a', 1],
        ['b', 2],
        ['c', 3],
        ['d', 4],
        ['e', 5]
    ]
    var b = new myMap(a)
    console.log(b.size())
    console.log(b.put('f', 666))
    console.log(b.remove('a'))
    console.log(b.get('a'))
    console.log(b.hasValue(1))
    console.log(b.values())
    console.log(b.keys())
    console.log(b.getIndex('e'))
    console.log(b)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM