`
JavaSam
  • 浏览: 954835 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js 模拟Map 最新测试通过

 
阅读更多
/**
 * Map 的方法
 */
Map = function(){
    var mapAddM = {
        /**
         * entry函数
         * @param {Object} key
         * @param {Object} val
         */
        entry: function(key, val){
            this.key = key;
            this.value = val;
        },
        //put方法
        put: function(key, val){
            this.store[this.store.length] = new this.entry(key, val);
        },
        //get方法
        get: function(key){
            for (var i = 0; i < this.store.length; i++) {
                if (this.store[i].key === key) 
                    return this.store[i].value;
            }
        },
        //remove方法
        remove: function(key){
            for (var i = 0; i < this.store.length; i++) {
                this.store[i].key === key && this.store.splice(i, 1);
            }
        },
        //keyset
        keySet: function(){
            var keyset = new Array;
            for (var i = 0; i < this.store.length; i++) 
                keyset.push(this.store[i].key);
            return keyset;
        },
        //valset
        valSet: function(){
            var valSet = new Array;
            for (var i = 0; i < this.store.length; i++) 
                valSet.push(this.store[i].value);
            return valSet;
        },
        //clear
        clear: function(){
            this.store.length = 0;
        },
        //size 
        size: function(){
            return this.store.length;
        },
		/**
		 *  迭代子
		 */
		iterator : function(){
			//TODO 待实现
			var obj = this.keySet();//所有的key集合
			var idx = 0;
			var me = {
				/**
				 * 当前key
				 */
				current : function(){
					return obj[idx-1];
				},
				/**
				 * 第一个key
				 */
				first : function(){
					return obj[0];
				},
				/**
				 * 最后一个key
				 */
				last : function(){
					return obj[obj.length-1];
				},
				/**
				 * 是否还有下一个元素
				 */
				hasNext : function(){
					idx++;
					if(idx > obj.length||null==obj[obj.length-1])return false;
					return true;
				}
			};
			return me;
		}
    };
	for (var method in mapAddM) {
	    this.store = new Array;
		Map.prototype[method] = mapAddM[method];
	}
}

 

0
2
分享到:
评论

相关推荐

    js模拟list和map

    javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 &lt;br&gt;List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...

    map的js实现

    通过分析`map.js`文件,我们可以学习如何创建自定义数据结构以模拟JavaScript内置的`Map`行为,并了解其在实际应用中的优缺点。同时,结合测试HTML页面,我们可以更全面地理解这个实现的工作流程。

    全面详尽的JavaScript和Node.js测试最佳实践(2023年7月).zip

    JavaScript和Node.js是现代Web开发中的核心技术,它们的测试最佳实践对于确保代码的质量、稳定性和可维护性至关重要。本文将深入探讨这两个领域的测试策略、工具和技术,帮助开发者提高测试效率和准确性。 一、...

    JavaScript_用单元测试收集最常见的JS面试问题.zip

    总的来说,这个压缩包旨在帮助面试者提升对JavaScript语言的理解,特别是其单元测试方面,同时通过模拟面试问题加强他们的问题解决能力。准备这部分内容不仅可以帮助求职者顺利通过面试,也能提高他们的编程实践水平...

    CH17-JSmap:JSmap导航程序

    JSmap是一款开源的JavaScript分析框架,它通过动态和静态分析的方法,对网页中的JavaScript脚本进行深度解析。这个工具特别适用于那些复杂的、难以手动审查的JavaScript代码,能够帮助用户找出可能隐藏在其中的恶意...

    前端开源库-map-or-similar

    在这种情况下,开发者通常会使用“polyfill”(填充物)来模拟Map的功能,以便在不支持Map的环境中也能实现类似的功能。 "map-or-similar"是一个前端开源库,它的目标是为那些不支持原生Map对象的环境提供一个类似...

    基于javaScript+Cesium的无人机飞行模拟+源码+飞行界面展示+开发文档+地图资源(毕业设计&课程设计&项目开发)

    基于javaScript+Cesium的无人机飞行模拟+源码+飞行界面展示+开发文档+地图资源,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 安装 2.1 安装node.js环境。 2.2 ...

    google-maps-mock:模拟Google Maps JS库以进行Jasmine测试angular-google-maps

    总结来说,`google-maps-mock`是针对AngularJS应用中使用Google Maps API的一个强大工具,它通过JavaScript模拟库帮助开发者编写高效的单元测试和集成测试,提高代码质量,同时降低了测试的复杂性和成本。通过理解和...

    demo.zip 个人测试集合demo

    Vue.js是一个流行的前端JavaScript框架,它以其轻量级、易上手和高性能著称。Vue的核心特性包括声明式的数据绑定、组件化、虚拟DOM、以及强大的指令系统,使得开发人员能够快速构建复杂的用户界面。在个人测试集合中...

    像import java类一样 import js类

    标题“像import java类一样 import js类”暗示了这篇博文主要讨论的是JavaScript中引入模块的方式,尝试模拟Java的导入机制。在JavaScript的世界里,我们通常使用`require`(Node.js环境)或`import`(ES6及以后版本...

    一些JavaScript的资料

    JavaScript,也被称为JS,是一种广泛应用于网页和网络应用的编程语言。它主要负责网页的动态交互,让静态的HTML页面变得生动有趣。JavaScript是客户端脚本语言,可以在用户的浏览器上运行,无需服务器支持,这也是其...

    测试工具学习

    WinRunner 通过模拟用户交互来创建测试脚本,它记录用户在应用程序上的操作,如点击按钮、填写表单等,然后自动生成可执行的测试代码。测试人员可以根据需求编辑这些脚本,添加特定的检查点和逻辑控制,以实现更复杂...

    howToMockIt:一个仓库,展示了如何使用通用框架模拟不同的场景

    无极模拟在jestES6 / test / promise.test.js中,我有如何测试Promise的示例。 由于如何解决区块,因此承诺测试可能非常困难。 关于Promise Mock的视频演示: : 完成的框架开玩笑(需要) 开玩笑(ES6模块/导入) ...

    web自动化测试技术交流.pptx

    它包括业务库、数据提供者、测试用例结果校验、报表、UI Map和日志库等模块。WAF 2.0则进一步引入了Java和TestNG,提升了框架的灵活性和可扩展性。 在使用Selenium进行测试脚本编写时,可以利用Selenium IDE进行...

    Javascript Testing Beginner's Guide

    5. **端到端测试**:探讨如何通过端到端测试来模拟真实用户的行为,验证整个应用的功能是否按预期工作。 6. **测试驱动开发 (TDD)**:解释TDD的基本原则和流程,演示如何先写测试后写代码的方法来构建高质量的应用...

    IE系列js(IE7.js、IE8.js、IE9.js)

    总之,IE系列js是前端开发者处理IE浏览器兼容性问题的重要工具,它们通过模拟现代浏览器的特性和行为,使得开发者可以在旧版本的IE上实现更丰富的功能和更好的用户体验。然而,随着浏览器的更新换代,开发者也需要...

    js代码-测试开发测试开发

    对于异步操作,测试需要考虑到时间因素,可以使用mock函数或sinon.js来模拟时间流逝。 代码质量是开发过程中的重要指标,静态代码分析工具如ESLint可以帮助开发者发现潜在的错误、不符合规范的代码或者可优化的部分...

    解决IE兼容的js.zip

    解压后,`browser-polyfill.min.js`应该是一个优化过的、轻量级的JavaScript文件,它提供了一系列函数和对象的模拟,使得那些在IE中不被支持的JavaScript特性得以运行。这些polyfills通常会覆盖DOM操作、Promise、...

    基于react省市区联动 map echarts dome

    - `.roadhogrc.mock.js`:Roadhog的模拟数据配置,用于在开发阶段提供假数据。 - `package.json`:项目依赖和配置信息的文件。 - `yarn.lock`:Yarn包管理器的锁定文件,确保项目依赖的版本一致。 - `README.md`:...

    tk-map:tomatenklang测试图

    "tk-map:tomatenklang测试图"是一个与工作冒险...通过以上步骤,你可以逐步熟悉"tk-map:tomatenklang测试图"的运作方式,掌握使用HTML创建交互式地图的技能,并且能够根据自己的需求定制和扩展这个工作冒险地图项目。

Global site tag (gtag.js) - Google Analytics