`
happmaoo
  • 浏览: 4567057 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用Javascript写的一个映射表类

阅读更多

该类可以通过关键字(key)查找相对应的值(value),关键字的类型可以是String、Number、Boolean类型,值的类型不限,代码如下:

<script>
function struct(key, value){

this.key = key;
this.value = value;

}

function setAt(key, value){

for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key === key )
{
this.map[i].value = value;
return;
}
}

this.map[this.map.length] = new struct(key, value);

}

function lookUp(key)
{
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key === key )
{
return this.map[i].value;
}
}

return null;
}

function removeKey(key)
{
var v;
for (var i = 0; i < this.map.length; i++)
{
v = this.map.pop();
if ( v.key === key )
continue;

this.map.unshift(v);
}
}

function getCount(){
return this.map.length;
}

function isEmpty(){
return this.map.length <= 0;
}

function classMap() {

this.map = new Array();

this.lookUp = lookUp;
this.setAt = setAt;
this.removeKey = removeKey;
this.getCount = getCount;
this.isEmpty = isEmpty;
}

window.onload = function(){

var map = new classMap();

alert("is the map empty? " + map.isEmpty());

// string to array
map.setAt("sw1", new Array("sw1_1"));
map.setAt("sw2", new Array("sw2_1", "sw2_2"));
map.setAt("sw3", new Array("sw3_1", "sw3_2", "sw3_3"));
alert(map.lookUp("sw5")); // null
alert(map.lookUp("sw2")); // "sw2_1, sw2_2"

alert(map.getCount()); // 3

// number to string
map.setAt(1, "sw1");
map.setAt(2, "sw2");
alert(map.lookUp(2)); // "sw2"
map.setAt(2, new Array("sw2_1", "sw2_2"));
alert(map.lookUp(2)); // "sw2_1, sw2_2"

alert(map.getCount()); // 5

// string to number
map.setAt("1", 1);
map.setAt("2", 2);
alert(map.lookUp("1")); // 1
alert(map.lookUp(1)); // "sw1"
map.setAt("sw3", 33);
alert(map.lookUp("sw3")); // 33

alert(map.getCount()); // 7

// number to number
map.setAt(1, 11);
map.setAt(2, 22);
alert(map.lookUp(1)); // 11

alert(map.getCount()); // 7

map.removeKey(1);
alert(map.lookUp(1)); // null

alert(map.getCount()); // 6

// boolean to array
map.setAt(false, new Array("false", "true"));
alert(map.lookUp(false));

alert(map.getCount()); // 7

}
</script>

分享到:
评论

相关推荐

    JavaScript中实现键值对应的字典与哈希表结构的示例

    上述代码中定义了一个`Dictionary`类,内部使用一个对象`datastore`存储数据,并通过一系列方法来操作这个对象。`_size`变量用于跟踪字典中元素的数量。 哈希表的实现 哈希表的实现稍微复杂一些,它需要处理键到值...

    javascript汉字简体繁体转换

    这份映射表可以是自定义的,也可以使用开源库如`OpenCC`提供的预定义映射表。`OpenCC`是一个广泛使用的开源项目,提供了丰富的简繁体转换配置,包括简体到繁体、繁体到简体以及各种方言的转换。 3. **JavaScript...

    【JavaScript源代码】如何用nodejs给C#写一个数据表的实体类生成工具.docx

    你可以使用一个支持MySQL的Node.js库,如mysql2,来执行SQL查询。以下是如何查询表`posts`的结构: ```javascript const mysql = require('mysql2'); const connection = mysql.createConnection({ host: 'your_...

    详解JavaScript中Hash Map映射结构的实现_.docx

    虽然JavaScript的内置对象`Object`可以被用来模拟哈希映射的行为,但它并不是一个标准的哈希表,因此可能会导致一些潜在问题。本文将深入探讨如何在JavaScript中实现一个简单的HashMap结构,并讨论与`Object`相关的...

    自己用JavaScript写的根据数据库名和字段自动生成java后台代码(二)

    标题提到的"自己用JavaScript写的根据数据库名和字段自动生成java后台代码(二)",这是一个关于利用JavaScript实现的代码生成工具,它能帮助开发者自动生成Java后端项目的部分代码,特别是基于数据库结构的部分,如...

    javascript操作

    复杂类型仅有一种,即object,它可以包含任意数量的键值对,形成一个键值映射表,也就是常说的对象。此外,function在JavaScript中既是数据类型也是构造函数,可以用来创建函数对象。JavaScript没有传统的类概念,但...

    基于JavaScript技术的bookstore网上书城设计源码

    该项目是一个基于JavaScript技术的bookstore网上书城设计源码,包含101个文件,包括25个JPG图片、16个CSS样式表、16个Java类文件、8个JSP页面、5个JavaScript脚本、4个CSS样式表、4个资源映射文件、3个JAR库文件、2...

    JavaScript讲义完整版.docx

    - **对象属性**:JavaScript对象允许将属性名映射到任意属性值,类似于哈希表或关联数组,不同于传统的结构体或类。 - **继承机制**:JavaScript采用基于原型的继承,不同于C++和Java的类继承。 3. JavaScript...

    基于Vue框架的CSS、JavaScript、HTML集成日程表设计源码

    该项目是一款基于Vue框架的集成日程表设计源码,包含68个文件,涵盖了15个PNG图片、14个JavaScript文件、14个CSS文件、11个CSS映射文件、6个JPG图片、2个Markdown文档、2个GIF动画、1个ICO图标、1个WOFF字体、1个TTF...

    JavaScript钱数小写转大写

    首先,我们需要创建一个映射表,将0-9的小写数字与对应的汉字大写数字对应起来: ```javascript const digitMap = { 0: '零', 1: '壹', 2: '贰', 3: '叁', 4: '肆', 5: '伍', 6: '陆', 7: '柒', 8: '捌', ...

    javascript实现中文页面繁简转换

    通常,我们会创建一个名为`convertToTraditional`(繁转简)或`convertToSimplified`(简转繁)的函数,这个函数接收一个字符串作为参数,遍历字符串中的每个字符,通过映射表查找对应的转换字,并进行替换。...

    javascript汉字转换成拼音

    因此,实现汉字转拼音的关键在于构建一个从汉字到拼音的映射表,然后遍历输入字符串中的每一个汉字,查找其在映射表中的拼音并输出。 #### 3. 给定代码片段分析 给定的代码片段展示了一种实现汉字转拼音的方法。...

    基于Spring Boot的Vue+JavaScript可盈保险合同管理系统设计源码

    包含730个文件,涵盖162个SVG图标、155个JavaScript脚本、83个Java类文件、79个GIF动画、49个CSS样式表、46个Vue组件、45个PNG图片、28个HTML文件、23个JPG图像、16个映射文件。该系统旨在提供一个全面的保险合同...

    JavaScript 电子琴+源码

    JavaScript电子琴是一个基于Web的音乐应用,利用HTML、CSS和JavaScript技术实现。它是一个互动的网页版乐器,用户可以通过键盘上的特定按键模拟弹奏钢琴。在这个项目中,开发者使用了JavaScript来处理用户输入和播放...

    基于JavaScript的扇贝单词批量导入工具设计源码

    该项目是一个基于JavaScript的扇贝单词批量导入工具设计源码,涵盖了101个文件,主要使用JavaScript语言编写,并包含CSS、C#、HTML等语言元素。文件类型包括17个JavaScript文件、9个映射文件、8个CSS样式表、8个JSON...

    javascript pdf阅读器

    实现JavaScript PDF阅读器的关键技术可能包括PDF.js,这是一个由Mozilla开发的开源库,专门用于在浏览器中显示PDF文档。它使用HTML5和Canvas元素来渲染PDF内容,并且能够处理分页、缩放、搜索等功能。此外,为了提高...

    JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    对于`ChinesePY.js`插件的内部实现,通常会包含一个汉字到拼音的映射表,以及对汉字拆分、拼音转换和组合的逻辑。具体的实现细节可能包括以下步骤: 1. **建立汉字到拼音的映射**:将每个汉字映射到其对应的拼音,...

    李炎恢JavaScript讲义合集(全部173页pdf)

    学习JavaScript,对于任何想要从事前端开发的IT专业人员来说,是一个非常重要的入门步骤。虽然入门相对简单,但是要达到精通的程度,需要对JavaScript的语法、API、框架以及现代Web开发的最佳实践有深入的理解和不断...

    基于HTML、JavaScript、CSS、Java技术的Book-Mall电商平台设计源码

    其中包括132个JPG图片、44个PNG图片、40个JavaScript脚本、28个CSS样式表、26个JSP页面、25个XML配置文件、21个JAR库文件、20个MAP映射文件、20个CLASS类文件、10个JAVA源代码文件。该平台以“三味书屋”为设计理念...

    基于Java、CSS、JavaScript的shoppingMall电商平台设计源码

    该项目是一个采用Java、CSS、JavaScript技术的电商平台设计源码,总计包含63个文件,具体包括37个Java源文件、10个XML配置文件、6个JPG图片文件、2个CSS样式表文件、2个JavaScript脚本文件、2个映射文件、1个文本...

Global site tag (gtag.js) - Google Analytics