`

js-map对象

map 
阅读更多

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>
<script type="text/javascript">
Array.prototype.get = function(val) {
    for (var i = 0; i < this.length; i++) {
         var map = this[i];
         if(map.get('id') == val){
             return map;
         }
    }
    return "";
};

Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
         var map = this[i];
         if(map.get('id') == val){
             return i;
         }
    }
    return -1;
};
Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};

function Map() {
     var struct = function(key, value) {
          this.key = key;
          this.value = value;
     }
     
     var put = function(key, value){
      for (var i = 0; i < this.arr.length; i++) {
           if ( this.arr[i].key === key ) {
            this.arr[i].value = value;
            return;
           }
      }
       this.arr[this.arr.length] = new struct(key, value);
     }
     
     var get = function(key) {
      for (var i = 0; i < this.arr.length; i++) {
       if ( this.arr[i].key === key ) {
         return this.arr[i].value;
       }
      }
      return null;
     }
     
     var remove = function(key) {
      var v;
      for (var i = 0; i < this.arr.length; i++) {
       v = this.arr.pop();
       if ( v.key === key ) {
        continue;
       }
       this.arr.unshift(v);
      }
     }
     
     var size = function() {
      return this.arr.length;
     }
     
     var isEmpty = function() {
          return this.arr.length <= 0;
     }
     this.arr = new Array();
     this.get = get;
     this.put = put;
     this.remove = remove;
     this.size = size;
     this.isEmpty = isEmpty;
}

/*
添加的时候 产生一个序号
公司的集合 方便增删改查get put remove
map key   value   公司名称  公司的对象
    1   公司的对象  map (key value) 字段名 字段属性
    2    公司的对象 公司的对象
添加的时候 产生一个序号
某一个公司的人员的集合  
map  key value 人员的集合
     1: array[,,,,,] 人员的对象 map (key value) 字段名 字段属性
*/

var companyMap = new Map();//公司情况
var com_staff_map = new Map();//公司对应人员情况

var company_map1 = new Map();//公司1
company_map1.put("id","1");
company_map1.put("company","nantian");
company_map1.put("ogcontract","wang,yue,hui");
company_map1.put("ogdateend","201212");

var company_map2 = new Map();//公司2
company_map2.put("id","2");
company_map2.put("company","haihui");
company_map2.put("ogcontract","li,zhang");
company_map2.put("ogdateend","201212");

companyMap.put("1",company_map1);
companyMap.put("2",company_map2);

com_staff_map.put("1",[]);//公司1 所对应的人员
com_staff_map.put("2",[]);//公司2 所对应的人员

var staffarray = [];
var staffmap = new Map();//人员1
staffmap.put("id","1");
staffmap.put("name","wangyuehui");
staffmap.put("seatno","12");
staffmap.put("ogdateend","201212");
staffarray.push(staffmap);

var staffmap2 = new Map();//人员2
staffmap2.put("id","2");
staffmap2.put("name","wangshuguo");
staffmap2.put("seatno","15");
staffmap2.put("ogdateend","20111110");
staffarray.push(staffmap2);

com_staff_map.put("1",staffarray);// 把人员1 2 添加到 公司1 中

//alert("companyMap的大小为:" + companyMap.size());
//alert("com_staff_map的大小为:" + com_staff_map.size());

alert("公司key为1的companyMap中存储的公司对象为:" + companyMap.get("1"));
alert("公司key为1的companyMap中存储的公司对象的名称为:" + companyMap.get("1").get("company"));

alert("公司key为2的companyMap中存储的公司对象的人员情况为:" + companyMap.get("2").get("ogcontract"));


alert("key为1的com_staff_map中存储的公司人员数据对象为:" + com_staff_map.get("1"));


alert("key为1的com_staff_map中存储的公司人员数据对象的序号为1的对象变化之前名称为:" + com_staff_map.get("1").get("1").get("name"));
com_staff_map.get("1").get("1").put("name","jkdfkjlkd");
alert("key为1的com_staff_map中存储的公司人员数据对象的序号为1的对象变化之后名称为:" + com_staff_map.get("1").get("1").get("name"));


alert("key为1的com_staff_map中存储的公司人员数据对象的序号为1的对象索引为:" + com_staff_map.get("1").indexOf("1"));

alert("key为1的com_staff_map中存储的公司人员数据对象的序号为1的删除之前的对象长度为:" + com_staff_map.get("1").length);
com_staff_map.get("1").remove("1");
alert("key为1的com_staff_map中存储的公司人员数据对象的序号为1的删除之后的对象长度为:" + com_staff_map.get("1").length );


/*
var map = new Map();
 map.put("company","redhacker");
 map.put("type","douguoqiang");
 map.put("ogcontract","dougq");
 alert("map的大小为:" + map.size())
 alert("key为re的map中存储的对象为:" + map.get("re"));
 map.remove("re");
 alert("移除key为re的对象后,获取key为re的map中存储的对象为:" + map.get("re"));
 alert("map移除一个元素后的大小为:" + map.size());
 alert("map是否是一个空map:" + map.isEmpty());
 */

</script>
<body>

hello world!!!!!!!

</body>
</html>

分享到:
评论

相关推荐

    前端开源库-language-map

    而 **JSON** (JavaScript Object Notation) 是一种轻量级的数据交换格式,被广泛应用于Web服务和客户端之间的数据传输,因为它的结构与JavaScript对象相似,易于解析和生成。 在这个项目中,**language-map** 的...

    前端开源库-object-to-map

    `object-to-map`是一个轻量级的工具,它的主要功能是将普通的JavaScript对象(Object)转换成ES6引入的Map对象。Map对象相较于传统的对象有以下优势: 1. **键的多样性**:Map的键可以是任意类型,而不仅仅是字符串...

    node-get-source-map-consumer-源码.rar

    `get-source-map-consumer`是Node.js中用于解析和处理源码映射文件的模块,它能读取`.map`文件并提供一个消费者对象,这个对象可以用来查询编译后的代码对应于原始源码的位置信息。首先,我们需要了解源码映射的基本...

    js Map对象封装

    js Map对象封装 和 java 的使用方法一样.

    echarts-mapJson-中国各省市县区地图json包

    在这个示例中,`mapType: 'china'` 表示使用的是中国地图,而 `data` 数组则需要根据实际情况填充,每个对象包含地区名称(与地图json中的地区名称对应)和相应的数值数据。 标签 "echarts json" 指出,这个话题...

    echarts-map.zip

    - 引入ECharts库和地图资源:首先,你需要在HTML文件中引入ECharts的主库文件(如`echarts.min.js`)以及地图相关的JavaScript文件。 - 初始化容器:在页面上设置一个用于显示地图的div元素,并为其设置合适的宽高...

    echarts-mapJson-master2018.zip

    6. 渲染图表:调用`myChart.setOption()`方法,传入配置好的选项对象,ECharts会根据这些选项生成地图图表。 例如,加载全国地图的代码可能如下: ```javascript // 引入ECharts库 require.config({ paths: { ...

    前端开源库-vinyl-map2

    1. 安装vinyl-map2库:通过npm(Node.js包管理器)进行安装,命令是`npm install vinyl-map2`。 2. 引入vinyl-map2到你的Gulp任务中,并定义映射函数,将文件内容转换为你需要的形式。 3. 使用gulp.src获取Vinyl...

    前端开源库-disk-map

    1. **源代码文件**:disk-map的主代码文件,通常以.js或.ts结尾,包含了库的核心实现。 2. **示例和测试**:展示如何使用disk-map的示例代码,以及用于测试库功能的测试脚本。 3. **文档**:详细说明如何安装、配置...

    前端开源库-source-map-concat

    在前端开发领域,源映射(Source Map)是一种非常重要的工具,它允许开发者在处理过的代码(例如压缩、混淆后的JavaScript或CSS)中调试原始源代码。`source-map-concat`是一个开源库,专门用于处理源映射的合并,...

    seat-map.js:互动式座位图

    在构建系统中,导入createSeatMap工厂功能方法和venues对象,该对象只是场所名称的关键值对。 import { createSeatMap , venues } from '@tixel/seat-map' window . seatMapJS = { venues : venues , create : ...

    前端开源库-meteor-reactive-object-map

    3. **Reactive Object Map**:这个库的核心是创建了一个反应式对象映射,它允许开发者将普通 JavaScript 对象转换为反应式的,这意味着当对象内的属性改变时,所有依赖于这些属性的视图或计算都会自动得到更新。...

    vue-world-map:Vue JS组件,用于在世界地图上显示动态数据

    该组件需要将countryData传递给它,这是一个格式如下的JS对象。 { US : 100 , CA : 120 , UK : 400 ,} 其中键是国家/地区的,值是与之关联的数字值。原料药道具描述可选的countryData 有关详细信息,请参见上面的...

    threejs-map:在Threejs中嵌入Openlayers地图

    threejs-map 在Threejs中嵌入Openlayers地图 快速开始 npm install npm run start 说明 实现了在Threejs场景中添加Openlayers地图 Openlayers地图元素作为Threejs的css3d对象置入scene 在平移、缩放、旋转操作时,...

    前端开源库-map-like

    "Map-like"类地图对象是一个这样的工具,它主要用于处理键值对数据,模仿JavaScript内置的Map对象,但可能具有更轻量级、更定制化的特性,适合在前端环境中使用。 Map-like库通常具有以下核心特点: 1. 键值对存储...

    Echart-Map地图

    ECharts是一款由百度开源的,基于JavaScript的数据可视化库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图等,并且支持地图图表,这就是"**Echart-Map**"。ECharts的特点在于其交互性强、性能高效、可...

    前端开源库-map-or-similar

    在前端开发中,JavaScript(JS)的Map对象是用于存储键值对的一种数据结构,它提供了比对象更灵活和强大的键管理能力。然而,不是所有版本的JavaScript都原生支持Map对象,特别是在一些旧的浏览器或者环境里。在这种...

    vue-baidu-map 进入页面自动定位的解决方案(推荐)

    Vue.js 是一款流行的前端框架,而 `vue-baidu-map` 是 Vue.js 的一个插件,用于集成百度地图服务。在开发过程中,有时我们需要在页面加载完成后自动进行定位,即获取用户的位置信息并显示在地图上。然而,由于百度...

    前端开源库-map-keys

    在`js-map-keys-master`这个压缩包中,很可能包含了`map-keys`库的源码,包括模块定义、测试用例和文档等。通过阅读源码,我们可以更深入地理解其实现机制,甚至可以根据自己的需求进行定制或扩展。 总之,`map-...

Global site tag (gtag.js) - Google Analytics