js下的map数据对象构建

mapUtil = function(){
this.map = new Array();
};

mapUtil.prototype = {
//Update or Insert
add : function(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);
},
put : function(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);
},
//Query
get : function(key){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" == key +"")
{
return this.map[i].value;
}
}

return undefined;
},
getKeyByIndex : function(index){
if(index >= 0 && index < this.map.length){
return this.map[index].key;
}

return null;
},
getByIndex : function(index){
if(index >= 0 && index < this.map.length){
return this.map[index].value;
}

return null;
},
getIndexByKey:function(key){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" === key +"")
{
return i;
}
}
},
//Delete
remove : function(key){
var v;
var len = this.map.length;
for (var i = 0; i < len; ++i)
{
v = this.map.pop();
if ( v.key === key ){
continue;
}

this.map.unshift(v);
}
},
removeByIndex : function(index){
var v;
var len = this.map.length;
for (var i = 0; i < len; i++)
{
v = this.map.shift();
if ( i === index ){
continue;
}

this.map.push(v);
}
},

//clear
clear : function(){
this.map.splice(0, this.map.length);
},
removeAll : function(){
this.map.splice(0, this.map.length);
},

size: function(){
return this.map.length;
},

isEmpty : function(){
return (this.map.length <= 0);
},
toString:function(){
var v="";
for (var i = 0; i < this.map.length; i++){
v+=this.map[i].key+":"+this.map[i].value+";"
}
return v;
}
};

//模拟<key, value>数据结构
function struct(key, value){
this.key = key;
this.value = value;
};

时间: 2024-10-23 15:17:22

js下的map数据对象构建的相关文章

在vue2.0中没有dev-server.js下配置方法&lt;转&gt;

这篇文章主要介绍了vue2.0在没有dev-server.js下的本地数据配置方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 问题描述: 在vue2.0的以上的版本,vue-cli的build的文件夹下没有dev-server.js文件,那怎么配置mock数据 Vue2.x在build下的webpack.dev.conf.js配置就行 //在const portfinder = require(‘portfinder')后添加 const express = require('

MVC - 11(下).jquery.tmpl.js 接收JSON类型数据循环

继续 mvc-11(上).dto:http://www.cnblogs.com/tangge/p/3840060.html jquery.tmpl.js 下载:http://pan.baidu.com/s/1o68w7Ke   1.前台 Index.cshtml @{ ViewBag.Title = "学员列表"; } @section headSection{ <script type="text/x-jquery-tmpl" id="trtemp

Js基础知识7-Es6新增对象Map和set数据结构

前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对的集合,只是键不仅可以是字符串还可以是其他数据类型,比如:对象(是不是很神奇).请看下面例子..下面话不多说了,来一起看看详细的介绍吧. Map 对象 Map结构提供了“值—值”的对应,任何值(对象或者原始值) 都可以作为一个键或一个值,是一种更完善的Hash结构实现.如果你需要“键值对”的数据结构

js中的Map对象的简单示例

es6提供一个对象Map, 其功能类似于java中的Map, 下面是java中的Map和js中的Map的简单对比: js中的Map.set()相当于java中的Map.put(), js中的Map.size相当于java中的Map.size()://在js中size是属性,在Map中size()是方法. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"

jsp的C标签一般使用方法以及js接收servlet中的对象及对象数字

jsp的C标签一般使用方法以及js接收servlet中的对象及对象数组 由于现流行的javaWeb框架提倡前后端分离,比如在SpringMvc中已经很少写servlet的一些东西:目前 前端jsp中大多是一些纯html和js,很少用到jstl的一堆东西,后端也仅仅处理一些前端的post.get请求或页面跳转,无须以往繁琐的xml路径映射和filter过滤. 不过有时也会用到servlet作用域中的一些东西,比如某个固定的值.上下文路径等等~,不过这些东西大多数也仅限于取值而不是设置值(或对象),

JS搞基指南----延迟对象入门提高资料整理

原文:JS搞基指南----延迟对象入门提高资料整理 JavaScript的Deferred是比较高大上的东西,  主要的应用还是主ajax的应用,  因为JS和nodeJS这几年的普及,  前端的代码越来越多,  各种回调套回调再套回调实在太让人崩溃, 所以就从后端拖了一个延迟对象这货, 用来解决回调地狱这个问题 .  我们使用ajax的时候多数都是为ajax添加回调 ,然后异步向服务器发送请求, 比如如下原生的XHR代码: <!DOCTYPE html PUBLIC "-//W3C//D

Javascript 如何生成Less和Js的Source map

为什么有Source map CSS和JS脚本正变得越来越复杂,为了解决网络瓶颈,大部分源代码都需要经过编译.合并.压缩才能运用到实际环境中.为了减少网络资源占用,源码一般都会经过以下方式处理: 使用css框架合并压缩css文件:    使用js合并插件,减少网络请求次数:    压缩js文件,降低网络占用: 这三种方式都可以有效的解决实际问题,但同时在运行调试过程中也带来麻烦,由于css和js都是经过了压缩转换,当报错时我们很难定位到源代码具体位置.为了解决这个问题,Source map由此诞

javascript不依赖JS加载顺序事件对象实现

背景: 在现在WEB开发中,稍复杂一点的页面,都会涉及到多个模块,尤其是类似seajs.LABjs.requireJS等模块工具出来后,前端开发者分模块开发已经慢慢变成一种习惯了,但是多个模块间的常常有各种交集,需要通信.需要互相调用,这时监听者模式便是必不可少的一种设计模式了,在前端表现事件操作.backbone和jquery都有提供了很好的事件处理方式. 但是,真正开发需求的时候我们常常会遇到文件加载顺序跟事件监听与更新不一致的需求,比如说:在一个视频网站里面,有一个视频处理的JS模块和用户

在AJAX里 使用【 XML 】 返回数据类型 实现简单的下拉菜单数据

在AJAX里 使用XML返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <