/*
*
* 接口: 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的元素 values()
* 获取MAP中所有VALUE的数组(ARRAY) keys() 获取MAP中所有KEY的数组(ARRAY)
*
* 例子: var map = new Map();
*
* map.put("key", "value"); var val = map.get("key") ……
*
*/
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) {
this.elements.push({
key : _key,
value : _value
});
}
//增加元素并覆盖
this.putOverride = function(_key,_value){
this.remove(_key);
this.put(_key,_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中所有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;
}
// 获取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;
}
}
/**
数字数组,可将字串中的数字提出并加入数组,返回最大最小值,排序
*/
function NumberArray(){
this.elements = new Array();
this.addandReturnMax = function(num){
this.add(num);
this.sort();
return this.max();
}
this.add = function(num){
num = num.replace(/\D/g,'');
this.elements.push(num);
}
this.sort = function(){
this.elements = this.bubbleSort();
return this.elements;
}
this.max = function(){
return this.elements.slice(0,1);
}
this.min = function(){
return this.elements.slice(-1,0);
}
this.bubbleSort = function() {
var arr = this.elements;
// 外层循环,共要进行arr.length次求最大值操作
for (var i = 0; i < arr.length; i++) {
// 内层循环,找到第i大的元素,并将其和第i个元素交换
for (var j = i; j < arr.length; j++) {
if (parseInt(arr[i]) < parseInt(arr[j])) {
// 交换两个元素的位置
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
this.clear = function(){
this.elements = new Array();
}
}
分享到:
相关推荐
让javascript像代码一样使用map对象吧
自定义javascript的Map类,使用习惯完全依据于java的map使用习惯编写,java中map的用法基本一样,导入包即可使用
标题中的“gmap.rar_GMAP_javascript_map_map javascript_map offline”揭示了这个压缩包内容是关于Google Maps API的JavaScript版本,特别强调了可以离线使用的特性。这表明它可能包含了一套本地化的、用于在没有...
JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了关联键值对的存储方式,与传统的对象不同,Map的键可以是任何类型的值,包括基本类型、...学习和掌握Map的使用,对于提升JavaScript编程能力具有重要意义。
`test.html` 和 `使用说明.txt` 可能是用来测试这些JavaScript文件功能的HTML页面和相关说明文档,通过运行test.html并查看控制台输出,我们可以验证和理解`array.js` 和 `map.js` 中代码的实际效果。 在实际开发中...
在JavaScript中,`Map`是一种内置的数据结构,用于存储键值对。相比于对象,`Map`的优势在于它可以使用任何类型的值作为键,包括对象。在本文中,我们将深入探讨一种高性能的JavaScript `Map`实现,它基于JSON,具有...
* element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL * containsKey(key) 判断MAP中是否含有指定KEY的元素 * containsValue(value) 判断MAP中是否含有指定...
javascript实现map,极其方便,可在需要当前页处理多数据时使用
在本项目中,“map-example.zip_html5_javascript_map”是一个包含使用HTML5和JavaScript实现的网页动态地图的压缩包。这个项目旨在展示如何利用这两种技术创建交互式地图应用,为用户提供丰富的地理信息可视化体验...
javascript Map原型,对象,实现javascript中的Map数据类型功能
### JavaScript Array map() 方法详解 #### 一、概述 在JavaScript中,`Array.prototype.map()` 是一种非常实用的方法,用于创建一个新数组,其结果是调用提供的函数处理原数组的每一个元素。此方法不改变原数组,...
本文将深入探讨如何使用JavaScript实现Map,以及它的特性和优势。 首先,创建一个Map对象非常简单,可以通过调用Map构造函数并传入可迭代对象(如数组)来初始化: ```javascript let map = new Map([[1, 'one'], ...
### 在JavaScript中实现Map对象 #### 一、引言 在JavaScript中,原生支持了多种数据结构,其中数组(Array)是最为常见的数据结构之一。然而,在某些应用场景下,我们可能需要一种能够根据键(key)快速查找值(value)的...
“简单说,Source map就是一个信息文件,里面储存着位置信息。也就是说,转换后的代码的每一个位置,所对应的转换前的位置。 有了它,出错的时候,除错工具将直接显示... “JavaScript Source Map。” Apple Books.
1.可以用null,boolean,string,number,array,Date,自定义类的对象作键值,数组里的元素必须是实现equals方法的类型,而且数组里含有null,undefined,NaN会弹出异常; 2.数组维数尽量不要太多,程序里递归检查数组元素...
在JavaScript中,虽然已经有了内置的`Map`,但理解其实现原理对我们学习和使用这个数据结构大有裨益。下面是一个简单的`Map`实现示例: ```javascript class SimpleMap { constructor() { this.store = []; } ...
在JavaScript中,对象的键默认是字符串,而Map可以使用任何可哈希的值作为键,包括对象、数字、字符串等。Map的一些主要方法包括set、get、has、delete、clear等。在`map.js`文件中,可能会有对Map的实现或扩展,...
javascript map类。类中有相应demo,在javascript中实现Map的一个类,包括map中对应的一些数据结构相关算法。
此外,使用裸对象时,`'toString' in map`将返回`false`,这意味着我们可以安全地使用任何字符串作为键,而不用担心与内置方法冲突。 在遍历HashMap时,`for...in`循环也会更简单,只需确保仅处理对象自身的属性: ...
接下来,我们将详细探讨`classMap`的使用、它的功能以及如何在JavaScript中实现类似的数据结构。 首先,`classMap`可能是一个自定义的数据类型,用于模拟Java或C#中的映射(Map)概念,它允许我们将一个特定的键...