js 操作map对象-程序员宅基地

/*
* Map对象,实现Map功能
*
*
* size() 获取Map元素个数
* isEmpty() 判断Map是否为空
* clear() 删除Map所有元素
* put(key, value) 向Map中增加元素(key, value) 
* remove(key) 删除指定key的元素,成功返回true,失败返回false
* get(key) 获取指定key的元素值value,失败返回null
* element(index) 获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
* containsKey(key) 判断Map中是否含有指定key的元素
* containsValue(value) 判断Map中是否含有指定value的元素
* keys() 获取Map中所有key的数组(array)
* values() 获取Map中所有value的数组(array)
*
*/
function Map(){
	this.elements = new Array();
 
	//获取Map元素个数
	this.size = function() {
	  return this.elements.length;
	}

	//判断Map是否为空
	this.isEmpty = function() {
	return (this.elements.length < 1);
	}

	//删除Map所有元素
	this.clear = function() {
	this.elements = new Array();
	}

	//向Map中增加元素(key, value) 
	this.put = function(_key, _value) {
		if (this.containsKey(_key) == true) {
			if(this.containsValue(_value)){
				if(this.remove(_key) == true){
					this.elements.push( {
					key : _key,
					value : _value
					});
				}
			}else{
				this.elements.push( {
				key : _key,
				value : _value
				});
			}
		} else {
			this.elements.push( {
			key : _key,
			value : _value
			});
		}
	}

	//删除指定key的元素,成功返回true,失败返回false
	this.remove = function(_key) {
		var bln = false;
		try {  
			for (i = 0; i < this.elements.length; i++) {  
				if (this.elements[i].key == _key){
					this.elements.splice(i, 1);
					return true;
				}
			}
		}catch(e){
			bln = false;  
		}
		return bln;
	}

	//获取指定key的元素值value,失败返回null
	this.get = function(_key) {
		try{  
			for (i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					return this.elements[i].value;
				}
			}
		}catch(e) {
			return null;  
		}
	}

	//获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
	this.element = function(_index) {
		if (_index < 0 || _index >= this.elements.length){
		return null;
		}
		return this.elements[_index];
	}

	//判断Map中是否含有指定key的元素
	this.containsKey = function(_key) {
		var bln = false;
		try {
			for (i = 0; i < this.elements.length; i++) {  
				if (this.elements[i].key == _key){
					bln = true;
				}
			}
		}catch(e) {
			bln = false;  
		}
		return bln;
	}
   
	//判断Map中是否含有指定value的元素
	this.containsValue = function(_value) {
		var bln = false;
		try {
			for (i = 0; i < this.elements.length; i++) {  
				if (this.elements[i].value == _value){
					bln = true;
				}
			}
		}catch(e) {
			bln = false;  
		}
		return bln;
	}
 
	//获取Map中所有key的数组(array)
	this.keys = function() {
		var arr = new Array();
		for (i = 0; i < this.elements.length; i++) {  
			arr.push(this.elements[i].key);
		}
		return arr;
	}

	//获取Map中所有value的数组(array)
	this.values = function() {
		var arr = new Array();
		for (i = 0; i < this.elements.length; i++) {  
			arr.push(this.elements[i].value);
		}
		return arr;
	};
}

转载于:https://my.oschina.net/whp/blog/92917

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34190136/article/details/91572430

智能推荐

matlab GUI课程设计——简易计算器2_matable设计计算器-程序员宅基地

文章浏览阅读507次。matlab GUI课程设计——简易计算器_matable设计计算器

Dynamics 365 Fo 开发环境无法用IE之外的浏览器访问_dynamic365 fo-程序员宅基地

文章浏览阅读181次。开发环境无法用IE之外的浏览器访问_dynamic365 fo

mybatis 之 if test 条件,参数为0时,查询条件未输出_if [ $# == 0 ]-程序员宅基地

文章浏览阅读3.1k次。mybatis 之 if test 条件,参数为0时,查询条件未输出_if [ $# == 0 ]

公司软件开发人员绩效评价标准_前端绩效评定-程序员宅基地

文章浏览阅读1.6k次。公司软件开发人员绩效评价标准摘自网络 总则: 通过量化的指标准确的评定软件开发人员的绩效,从而对薪酬分配提供可靠的依据。 基本说明: 绩效评价,包括业绩考核和能力评定。对软件开发人员的绩效评定,每一项问答表现优秀加一分,表现不佳扣一分,表现平平不得分,最后计算总分。 业绩考核: 此项考核主要考核在一定时间内软件开发人员的任务完成情况_前端绩效评定

CentOS 8.2安装-解决Error setting up base repository_error setup base repo-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏5次。安装CentOS 8.2准备工作下载系统镜像制作U盘启动盘CentOS 8出来了也有一段时间,秉承着用新不用旧的原则,把电脑上原先的CentOS 7.6 换成了CentOS 8.2。拆掉了原先装系统盘,装了一块新的250G的Samsung 850EVO。准备安装CentOS 8.2。准备工作下载系统镜像CentOS官方网站上并不提供直接下载,需要从镜像站下载。可以直接下载,也可以使用迅雷等。对于校内计流量用户,可以使用uTorrent使用ipv6,从其他高校的镜像(上海交大镜像站)站进行下载,从而避_error setup base repo

python基础IDE之Pycharm_pycharm ide 格式-程序员宅基地

文章浏览阅读411次。1. Python Pycharm 下载/安装官方网址:https://www.jetbrains.com/pycharm/download/#section=windows安装:下载保存文件,运行,下一步,下一步2. 新建工程3. 新建并运行python文件4. IDE配置-窗口主题>>> 进入 file > Settin..._pycharm ide 格式

随便推点

算法-回溯法初探-n皇后问题_n皇后需要定义何种存储结构?-程序员宅基地

文章浏览阅读3.5k次。问题描述:这周的数据结构作业要求写一个程序判断输入为n的所有8皇后的情况, 皇后大致就是在一个n*n的棋盘上所有不同行列及不同对角线的格子排列提示用书本上求解迷宫时用到的回溯法,也就是用到一个栈来保存当前满足的皇后,若进行不下去则回溯采用C语言实现代码:1,文件 BetterQueen.h里面主要定义了一些程序要用到的数据结构和函数接口#ifndef BETTE_n皇后需要定义何种存储结构?

18.图像处理之线性滤波(空间域/高低频/方框/均值/高斯) --- OpenCV从零开始到图像(人脸 + 物体)识别系列_高斯平滑模板频域分析-程序员宅基地

文章浏览阅读1.1k次。18.图像处理之线性滤波(空间域/高低频/方框/均值/高斯) — OpenCV从零开始到图像(人脸 + 物体)识别系列本文作者:小嗷 微信公众号:aoxiaoji吹比QQ群:736854977简书链接:https://www.jianshu.com/u/45da1fbce7d0 平滑处理也称模糊处理,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分..._高斯平滑模板频域分析

YOLOv1详解_yolov1论文下载-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏5次。YOLO(You only look once)你只需要看一次,提出了一种新的one stage类型的检测器,正如名字所说的那样,一步到位,直接预测出目标类别和位置。不同于之前的检测器,YOLO将目标检测视作回归问题,整个检测网络是单一的神经网络,输入是图像,输出直接给出目标类别和位置,不需要给出目标的区域建议再进行复杂的后处理。......_yolov1论文下载

6大人工智能应用关键技术,终于有人讲明白了-程序员宅基地

文章浏览阅读8.5k次,点赞3次,收藏39次。导读:我国《人工智能标准化白皮书(2018年)》中也给出了人工智能的定义:“人工智能是利用数字计算机或者由数字计算机控制的机器,模拟、延伸和扩展人类的智能,感知环境、获取知识并使用知识获..._人工智能ai关键技术

js实现下载excel_exceljs.workbook()-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏7次。excel是常见的表格处理工具,那么前端怎么实现excel生成与下载呢?我们利用xlsx.js来实现一. 安装js-xlsxnpm install xlsx二. 文档简介完成的XLSX对象:需要理解的术语:1 workbook是xlsx读取excel内容后的js对象,读取到内容后可以对表格进行操作;同样的也可以创建一个空的workbook,往其中写入内容完整的workbook对象..._exceljs.workbook()

php 启动workman,workerman如何启动-程序员宅基地

文章浏览阅读1.5k次。Workerman启动停止等命令都是在命令行中完成的。要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。Workerman启动的方法:以debug(调试)方式启动php start.php start以daemon(守护进程)方式启动php start.php start -ddebug和daemon方式区别:1、以debug方式启动,代码中echo、var_d..._workman 启动

推荐文章

热门文章

相关标签