Copie o código do código da seguinte forma:
/*
* Objeto MAP, realizando a função MAP
*
*Interface:
* size() obtém o número de elementos MAP
* isEmpty() determina se o MAP está vazio
* clear() exclui todos os elementos do MAP
* put(chave, valor) adiciona elementos (chave, valor) ao MAP
* remove(key) exclui o elemento da KEY especificada, retorna True se for bem-sucedido e False se falhar.
* get(key) Obtém o valor do elemento VALUE da KEY especificada e retorna NULL se falhar.
* element(index) Obtém o elemento no índice especificado (use element.key, element.value para obter KEY e VALUE), retorna NULL em caso de falha
* containsKey(key) determina se o MAP contém o elemento da KEY especificada
* containsValue(value) determina se o MAP contém o elemento do VALUE especificado
*values() Obtém o array (ARRAY) de todos os VALUE no MAP
*keys() obtém o array (ARRAY) de todas as KEYs no MAP
*
* exemplo:
* var mapa = new Mapa();
*
* map.put("chave", "valor");
* var val = map.get("chave")
*…
*
*/
function Mapa() {
this.elements = new Array();
//Obtém o número de elementos MAP
este.tamanho = função() {
retorne este.elements.length;
};
//Determina se o MAP está vazio
this.isEmpty = function() {
retornar (this.elements.length <1);
};
//Exclui todos os elementos do MAP
isto.claro = função() {
this.elements = new Array();
};
//Adiciona elementos (chave, valor) ao MAP
this.put = function(_key, _value) {
this.elements.push({
chave: _chave,
valor: _valor
});
};
//Exclui o elemento da KEY especificada, retorna True se for bem-sucedido, False se falhar
this.removeByKey = function(_key) {
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
this.elements.splice(i, 1);
retornar verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Exclui o elemento do VALUE especificado, retorna True se for bem-sucedido, False se falhar
this.removeByValue = function(_value) {//removeByValueAndKey
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
this.elements.splice(i, 1);
retornar verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Exclui o elemento do VALUE especificado, retorna True se for bem-sucedido, False se falhar
this.removeByValueAndKey = function(_key,_value) {
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
this.elements.splice(i, 1);
retornar verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Obtém o valor do elemento VALUE da KEY especificada e retorna NULL em caso de falha
this.get=função(_chave){
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
retorne este.elementos[i].valor;
}
}
} pegar (e) {
retornar falso;
}
retornar falso;
};
//Obtém o elemento no índice especificado (use element.key, element.value para obter KEY e VALUE), retorna NULL em caso de falha
este.elemento = função (_index) {
if (_index < 0 || _index >= this.elements.length) {
retornar nulo;
}
retorne isto.elements[_index];
};
//Determina se o MAP contém o elemento da KEY especificada
this.containsKey = function(_key) {
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
bln = verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Determina se o MAP contém o elemento do VALUE especificado
this.containsValue = function(_value) {
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
bln = verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Determina se o MAP contém o elemento do VALUE especificado
this.containsObj = function(_key,_value) {
varbln = falso;
tentar {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
bln = verdadeiro;
}
}
} pegar (e) {
bln = falso;
}
retornarbln;
};
//Obtém o array (ARRAY) de todos os VALUE no MAP
isto.valores=função() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(este.elementos[i].valor);
}
retornar chegada;
};
//Obtém o array (ARRAY) de todos os VALUE no MAP
this.valuesByKey = function(_key) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
arr.push(este.elementos[i].valor);
}
}
retornar chegada;
};
//Obtém o array de todas as KEYs no MAP (ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
retornar chegada;
};
//Obtém a chave através do valor
this.keysByValue = function(_value) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if(_value == this.elements[i].value){
arr.push(this.elements[i].key);
}
}
retornar chegada;
};
//Obtém o array de todas as KEYs no MAP (ARRAY)
this.keysRemoveDuplicate = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
var sinalizador = verdadeiro;
for(var j=0;j<arr.length;j++){
if(arr[j] == this.elements[i].key){
bandeira = falso;
quebrar;
}
}
se(sinalizador){
arr.push(this.elements[i].key);
}
}
retornar chegada;
};
}