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)