/*
* Map对象,实现Map功能
*
*
* size() 获取Map元素个数
* isEmpty() 判断Map是否为空
* clear() 删除Map所有元素
* put(key, value) 向Map中增加元素(key, value)
* remove(key) 删除指定key的元素,成功返回true,失败返回false
* get(key) 获取指定key的元素值value,失败返回null
* element(index) 获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
* containsKey(key) 判断Map中是否含有指定key的元素
* containsValue(value) 判断Map中是否含有指定value的元素
* keys() 获取Map中所有key的数组(array)
* values() 获取Map中所有value的数组(array)
*
*/
function Map(){
this.elements = new Array();
//获取Map元素个数
this.size = function() {
return this.elements.length;
},
//判断Map是否为空
this.isEmpty = function() {
return (this.elements.length < 1);
},
//删除Map所有元素
this.clear = function() {
this.elements = new Array();
},
//向Map中增加元素(key, value)
this.put = function(_key, _value) {
if (this.containsKey(_key) == true) {
if(this.containsValue(_value)){
if(this.remove(_key) == true){
this.elements.push( {
key : _key,
value : _value
});
}
}else{
this.elements.push( {
key : _key,
value : _value
});
}
} else {
this.elements.push( {
key : _key,
value : _value
});
}
},
//删除指定key的元素,成功返回true,失败返回false
this.remove = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key){
this.elements.splice(i, 1);
return true;
}
}
}catch(e){
bln = false;
}
return bln;
},
//获取指定key的元素值value,失败返回null
this.get = function(_key) {
try{
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
}catch(e) {
return null;
}
},
//获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length){
return null;
}
return this.elements[_index];
},
//判断Map中是否含有指定key的元素
this.containsKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key){
bln = true;
}
}
}catch(e) {
bln = false;
}
return bln;
},
//判断Map中是否含有指定value的元素
this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value){
bln = true;
}
}
}catch(e) {
bln = false;
}
return bln;
},
//获取Map中所有key的数组(array)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
},
//获取Map中所有value的数组(array)
this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
};
}
分享到:
相关推荐
在`jsMap.js`这个文件中,很可能包含了一些关于如何创建、访问和操作Map对象的示例代码。例如,可能有以下代码片段: ```javascript let map = new Map(); map.set('name', '张三'); map.set({id: 1}, '李四'); ...
### 在JavaScript中实现Map对象 #### 一、引言 在JavaScript中,原生支持了多种数据结构,其中数组(Array)是最为常见的数据结构之一。然而,在某些应用场景下,我们可能需要一种能够根据键(key)快速查找值(value)的...
在JavaScript中,尽管原生没有提供与Java完全相同的Map对象,但可以通过自定义对象或使用ES6提供的Map数据结构来实现类似的功能。本篇将详细探讨如何在JavaScript中模仿Java的Map对象,以及ES6 Map的数据结构和用法...
`map.js` 文件可能会展示如何创建和操作Map,以及在实际项目中如何利用Map优化数据存储和查询。 `object.js` 文件可能涉及到的是JavaScript对象的操作,虽然不是直接与Array或Map相关,但它们在JavaScript中是重要...
在JavaScript中,原生的`Map`对象虽然提供了丰富的功能,但其操作方式与Java中的`Map`有所不同,不那么直观。为了使习惯于Java开发的程序员在JS中也能便捷地操作映射数据结构,我们可以创建一个名为`UtilMap`的对象...
在本示例中,`jmap.js`中的高性能`Map`利用了JSON的特性,将键值对存储为字符串化的JSON对象,然后通过字符串操作进行查找和更新,从而降低了内存开销。 在`jmap.js`中,可能会使用以下策略来提高性能: 1. **字符...
JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了键值对的存储方式,与对象类似但有显著区别。Map的主要优势在于键可以是任意类型,而不仅仅是字符串,这使得它在处理复杂数据结构时非常有用。在本文中...
在本文中,我们将探讨JavaScript中如何遍历Map对象。Map对象是ECMAScript 6(ES6)中引入的一种新的数据结构,它类似于对象,也是键值对的集合,但是它的一些特性与传统的Object对象有所不同。Map对象中的键可以是...
JavaScript中的Map对象是一种存储键值对的集合,其中的键可以是任何数据类型。Map对象提供了一些内置的方法来进行操作,包括遍历。遍历Map对象是一种常用的操作,它允许开发者访问Map中的每个键值对。以下是在...
JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了关联键值对的存储方式,与传统的对象不同,Map的键可以是任何类型的值,包括基本类型、对象甚至是其他Map实例。这一特性使得Map在处理大量复杂数据或者...
在JavaScript中,`Map`对象是一种内置的数据结构,它保存键值对,并且可以按插入顺序记住元素。与普通的JavaScript对象不同的是,`Map`的键可以是任何类型的值(不仅仅是字符串或符号)。本文将详细介绍如何在...
在JavaScript的世界里,`Map`对象是一个非常重要的数据结构,它允许我们存储键值对,其中键可以是任何类型的...在阅读`MapUtil.js`源码时,可以关注这些方法的实现细节,理解它们如何优化和扩展了原生`Map`对象的能力。
虽然描述为空,但我们可以推断,这个博客可能详细介绍了如何在JavaScript中进行JSON对象与字符串的转化操作,以及在实际应用中的重要性。 **标签中的知识点:** 1. **源码**:这可能意味着博客可能包含了实际的...
关于Java调用存储过程,通常是在数据库操作中进行的。存储过程是预先在数据库中编译好的SQL语句集合,通过Java的JDBC(Java Database Connectivity)API可以调用这些存储过程。以下是一个基本示例,假设有一个名为`...
总结来说,在Element UI中配合Vue.js进行数组和Map对象的操作时,我们主要通过Vue.set方法来处理那些需要响应式更新的数据结构。这使得我们能够在不破坏Vue的响应式系统的情况下,动态地添加或修改数据。这对于那些...
本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一...
"对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...
- **《JavaScript遍历算法与技巧总结》**:包括各种遍历数组和对象的技巧,如for循环、forEach、map、filter等。 - **《JavaScript查找算法技巧总结》**:介绍查找特定元素的方法,如indexOf、find、findIndex等。...
在JavaScript中,对象的键默认是字符串,而Map可以使用任何可哈希的值作为键,包括对象、数字、字符串等。Map的一些主要方法包括set、get、has、delete、clear等。在`map.js`文件中,可能会有对Map的实现或扩展,...
Map对象主要用于保存键值对,其特点是键可以是任意数据类型,而不仅仅是字符串或Symbol,这使得Map在处理非字符串键时非常方便。此外,Map的键值对插入顺序会被记住,因此它是有序的,而Object的属性顺序则不固定。 ...