用Javascript写的一个映射表类

javascript实现映射表(附完整源码) 阅读详情

用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> 

gbk与unicode的映射表 按照Java代码的说明可以找到如下文字:    Code Page 936 (CP936) is the most popular implementation of GBK.    A mapping to Unicode is provided by Microsoft:      http://www.microsoft.com/typography/unicode/936.txt下面的 阅读详情

相关推荐

JS与表映射

JS与表映射,与相关的表对应,可以直接保存到数据库中

JavaScript映射

JavaScript映射

weixin_70806918的博客 3085

ABAQUS应用15——Abaqus软件中边界条件与力学中自由度的关系

核心关系:Abaqus通过约束自由度实现边界条件,自由度类型由单元决定。正确设置步骤:确定模型类型(实体/梁/壳)。识别节点的自由度(平动或转动)。根据实际约束施加对应的自由度限制。验证:通过检查变形模式、反力分布等确认边界条件合理性。正确理解自由度与边界条件的关系,是确保有限元模型准确模拟实际物理行为的关键。

George的博客 1544

用Javascript写的一个映射表(MAP)类--续

序:本来是想修改一下上一次写的文章http://dev.youkuaiyun.com/Develop/article/27/27499.shtm,可优快云不知怎么不能修改了,因此,只好重新增加。有必要在这里说明一下写这个映射表类的目的,它来自于一个ASP项目开发中的灵感,具体是用户权限的管理和查询:在设计用户user -> 角色roles时,用","号将用户属于的多个角色ID分开,以判断用户所属的哪

Chenxinyi's Weblog 2762

arcgis select by attributes一次选多个_视频:如何基于ArcGIS与GeoDa求莫兰指数和绘制莫兰散点图?...

莫兰指数是全域莫兰指数(Global Moran's I)的简称,是澳大利亚统计学家帕特里克·阿尔弗雷德·皮尔斯·莫兰(Patrick Alfred Pierce Moran),在1950年提出的。详细介绍,如下:莫兰指数取值范围在-1.0至1.0之间。当Moran's I >0时,表示空间正相关性,其值越大,空间相关性越明显;当Moran's I <0时,表示空间负相关性...

weixin_39948247的博客 1759

从PCIe 3.0到6.0:为什么“阻抗一致性”比“绝对值”更重要?聊聊连接器与板材的选型影响

本文探讨了PCIe从3.0到6.0演进过程中,阻抗一致性相比绝对值的重要性,分析了连接器与板材选型对高速信号完整性的影响。随着速率提升至64GT/s,系统级阻抗控制和验证成为关键,文章提供了选型指南、验证方法论及工程实践建议,帮助工程师应对高速设计挑战。

weixin_42556197的博客 384

javascript实现映射表

期望通过javascript实现数据映射: const testJson = { '汤姆|Tom':'Tom', '鲍勃|Bob':'Bob', '杰克|Jack':'Jack' } const keyValue = (name)=&amp;gt;{ for(key in testJson){ if (testJson.hasOwnProperty(key)) { let keys =...

前端之路修远兮 9461

IoT 平台架构全景图:从设备到 AI 的完整技术体系深度解析

随着物联网设备规模进入百万级时代,IoT 平台架构已经从简单的设备接入系统演变为完整的数据平台。本文从系统架构师视角,深度解析 IoT 平台的完整技术体系,包括设备接入、MQTT 通信、消息流平台、数据平台与 AI 决策系统,并结合主流云平台实践,构建从设备到 AI 的完整 AIoT 架构认知。

moton2017的博客 856

JavaScript | 1000个判断条件难道要写了1000个 if ? 一文教你如何实现分支优化

在实际开发中,如果写了大量的 if 分支,并且可能还具有分支套分支,可以想象到整个代码的可读性和可维护都会大大降低,这是一个比较头疼的问题,那有没有什么办法能够即实现需求又能避免这些问题呢?本篇文章将转换思维深入讲解代码分支优化,快来围观吧!

前端之行,任重道远! 1万+

Cesium 实战 26 - 自定义纹理材质 - 箭头流动线(图片纹理)

Cesium 实战 - 自定义纹理材质 - 箭头流动线(图片纹理)。

非科班Java出身GISer的博客 1401

编写一个期货跨期套利的程序,谈谈思路及案例

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1718

JavaScript 实现 Map key-value 映射表

JavaScript的实现的Map,用着挺方便的,不知道性能怎么样。自己用只有不超过10个元素,所以性能无所谓了。/********************jsmap.js**************************//////// map 类 function classMap() {  this.map = new Array();    var struct =

3274

UFS软件分区介绍

本文主要介绍了ufs软件分区管理的概况,能够使大家对软件分区有个大体的认识

肥匪斐's blogs 1万+

JSK练习-水果店(映射表)

题目链接 有关“映射表的映射表”的题目,AC代码: #include<bits/stdc++.h> using namespace std; set<string>p; set<string>f; map<string, map<string, int>>d; int main() { int n; cin>&...

giggle66的博客 306

数据分享|2000-2021年全国各城市风速数据(逐日、逐月、逐年)

而后,将每日的csv文件进行展点,再投影,采用反距离权重法对每日的数据进行插值。:美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/该数据是通过风速平均值插值得来,由于插值的方式与各种处理参数的不同,会导致该数据与其它风速数据不同,数据仅供个人学习使用哦。如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

J_Giser的博客 1777

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

关于map映射表

简而言之,这段代码的作用是将 valGroupsOptions 数组转换成一个易于查找的 Map 结构,便于后续通过 name 快速访问对应的 options 值。首先,我们创建了一个 Map,其中键是 valGroupsOptions 中的 name,值是对应的 options。每个键都是独一无二的,对应一个值。使用 Map 的优势在于它明确地表示了一种键值对集合,并且提供了更现代的API来处理这些数据,比如 map.get(‘key1’) 获取值,map.size 获取映射表的大小等。

foreverhui的博客 466

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[JavaScript键码表]身为一个键盘侠,不搞清楚键码映射表怎么可以???

keycode 0 = keycode 1 = keycode 2 = keycode 3 = keycode 4 = keycode 5 = keycode 6 = keycode 7 = keycode 8 = BackSpace keycode 9 = Tab keycode 10 = keycode 11 = keycode 12 = Clear keycode 13 = Enter keycode 14 = keycode 15 = keycode 16 = Shift_L keycode 17.

我驾驶汽车从不是为了从A点到达B点,我喜欢去感受汽车,与之交流,与之融为一体。 5707

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

简体字和繁体字的映射表的工作原理是什么?

映射表在简繁体转换中的工作原理基于字符之间的对应关系。简体字和繁体字之间存在着一定的对应规律,尽管有些字是一一对应的,但也存在多对一或一对多的情况,比如简体字“面”对应繁体字“面”和“麵”。映射表就是用来存储这些对应关系的。

aoxiangchina的博客 656

javascript 获得汉字拼音的第一个字母

var spell = {0xB0A1:"a", 0xB0A3:"ai", 0xB0B0:"an", 0xB0B9:"ang", 0xB0BC:"ao", 0xB0C5:"ba", 0xB0D7:"bai", 0xB0DF:"ban", 0xB0EE:"bang", 0xB0FA:"bao", 0xB1AD:"bei", 0xB1BC:"ben", 0xB1C0:"beng", 0xB1C6:"b

哪里? 1249

【手写 VueRouter 源码】第四篇 - 创建路由映射表

本篇,介绍了路由映射表的创建,主要包含以下内容:1,路由安装的初始化:init 方法;2,路由初始化:constructor 构造函数逻辑;3,创建路由匹配器:createMatcher;4,match方法 和 addRoutes方法的实现;

BraveWangDev 995

JavaScript 的对象

作为映射表的 JS 对象JS 对象的“可见”结构(从客户代码的角度去看)基本上是一个映射表,类似 Map, Dictionay 之类的数据结构。映射表的键是个字符串,表示属性名,并且可以是任意字符串(包括空),不要求是合法的 JS 标识符。 只有合法的 JS 标识符可以用圆点表示法 map.fontSize ,否则只有用下标表示法 map['font-size'];如果属性名是个变量,也要用下标表

gsg8709的专栏 383
上一篇: 怎么用javascript进行拖拽
下一篇: 使用window.createPopup();做的简单下拉菜单
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值