该类可以通过关键字(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>
分享到:
相关推荐
上述代码中定义了一个`Dictionary`类,内部使用一个对象`datastore`存储数据,并通过一系列方法来操作这个对象。`_size`变量用于跟踪字典中元素的数量。 哈希表的实现 哈希表的实现稍微复杂一些,它需要处理键到值...
这份映射表可以是自定义的,也可以使用开源库如`OpenCC`提供的预定义映射表。`OpenCC`是一个广泛使用的开源项目,提供了丰富的简繁体转换配置,包括简体到繁体、繁体到简体以及各种方言的转换。 3. **JavaScript...
你可以使用一个支持MySQL的Node.js库,如mysql2,来执行SQL查询。以下是如何查询表`posts`的结构: ```javascript const mysql = require('mysql2'); const connection = mysql.createConnection({ host: 'your_...
虽然JavaScript的内置对象`Object`可以被用来模拟哈希映射的行为,但它并不是一个标准的哈希表,因此可能会导致一些潜在问题。本文将深入探讨如何在JavaScript中实现一个简单的HashMap结构,并讨论与`Object`相关的...
标题提到的"自己用JavaScript写的根据数据库名和字段自动生成java后台代码(二)",这是一个关于利用JavaScript实现的代码生成工具,它能帮助开发者自动生成Java后端项目的部分代码,特别是基于数据库结构的部分,如...
复杂类型仅有一种,即object,它可以包含任意数量的键值对,形成一个键值映射表,也就是常说的对象。此外,function在JavaScript中既是数据类型也是构造函数,可以用来创建函数对象。JavaScript没有传统的类概念,但...
该项目是一个基于JavaScript技术的bookstore网上书城设计源码,包含101个文件,包括25个JPG图片、16个CSS样式表、16个Java类文件、8个JSP页面、5个JavaScript脚本、4个CSS样式表、4个资源映射文件、3个JAR库文件、2...
- **对象属性**:JavaScript对象允许将属性名映射到任意属性值,类似于哈希表或关联数组,不同于传统的结构体或类。 - **继承机制**:JavaScript采用基于原型的继承,不同于C++和Java的类继承。 3. JavaScript...
该项目是一款基于Vue框架的集成日程表设计源码,包含68个文件,涵盖了15个PNG图片、14个JavaScript文件、14个CSS文件、11个CSS映射文件、6个JPG图片、2个Markdown文档、2个GIF动画、1个ICO图标、1个WOFF字体、1个TTF...
首先,我们需要创建一个映射表,将0-9的小写数字与对应的汉字大写数字对应起来: ```javascript const digitMap = { 0: '零', 1: '壹', 2: '贰', 3: '叁', 4: '肆', 5: '伍', 6: '陆', 7: '柒', 8: '捌', ...
通常,我们会创建一个名为`convertToTraditional`(繁转简)或`convertToSimplified`(简转繁)的函数,这个函数接收一个字符串作为参数,遍历字符串中的每个字符,通过映射表查找对应的转换字,并进行替换。...
因此,实现汉字转拼音的关键在于构建一个从汉字到拼音的映射表,然后遍历输入字符串中的每一个汉字,查找其在映射表中的拼音并输出。 #### 3. 给定代码片段分析 给定的代码片段展示了一种实现汉字转拼音的方法。...
包含730个文件,涵盖162个SVG图标、155个JavaScript脚本、83个Java类文件、79个GIF动画、49个CSS样式表、46个Vue组件、45个PNG图片、28个HTML文件、23个JPG图像、16个映射文件。该系统旨在提供一个全面的保险合同...
JavaScript电子琴是一个基于Web的音乐应用,利用HTML、CSS和JavaScript技术实现。它是一个互动的网页版乐器,用户可以通过键盘上的特定按键模拟弹奏钢琴。在这个项目中,开发者使用了JavaScript来处理用户输入和播放...
该项目是一个基于JavaScript的扇贝单词批量导入工具设计源码,涵盖了101个文件,主要使用JavaScript语言编写,并包含CSS、C#、HTML等语言元素。文件类型包括17个JavaScript文件、9个映射文件、8个CSS样式表、8个JSON...
实现JavaScript PDF阅读器的关键技术可能包括PDF.js,这是一个由Mozilla开发的开源库,专门用于在浏览器中显示PDF文档。它使用HTML5和Canvas元素来渲染PDF内容,并且能够处理分页、缩放、搜索等功能。此外,为了提高...
对于`ChinesePY.js`插件的内部实现,通常会包含一个汉字到拼音的映射表,以及对汉字拆分、拼音转换和组合的逻辑。具体的实现细节可能包括以下步骤: 1. **建立汉字到拼音的映射**:将每个汉字映射到其对应的拼音,...
学习JavaScript,对于任何想要从事前端开发的IT专业人员来说,是一个非常重要的入门步骤。虽然入门相对简单,但是要达到精通的程度,需要对JavaScript的语法、API、框架以及现代Web开发的最佳实践有深入的理解和不断...
其中包括132个JPG图片、44个PNG图片、40个JavaScript脚本、28个CSS样式表、26个JSP页面、25个XML配置文件、21个JAR库文件、20个MAP映射文件、20个CLASS类文件、10个JAVA源代码文件。该平台以“三味书屋”为设计理念...
该项目是一个采用Java、CSS、JavaScript技术的电商平台设计源码,总计包含63个文件,具体包括37个Java源文件、10个XML配置文件、6个JPG图片文件、2个CSS样式表文件、2个JavaScript脚本文件、2个映射文件、1个文本...