实现map window.onload加载
之前一直是写C/S的,最近转做B/S了,记录一下自己在工作和学习中的JS小技巧,方便自己今后复习和查阅。
JS中默认只带array,有时候会需要key-value的map类功能,虽然array也支持array[key] = value的用法,但是看起来不爽,在网上找了一个map的实现,先记录下来,以后慢慢完善:
function Map() {/** Map 大小 * */var size = 0;/** 对象 * */var entry = new Object();/** 存 * */this.put = function(key, value) {if (!this.containsKey(key)) {size++;}entry[key] = value;}/** 取 * */this.get = function(key) {if (this.containsKey(key)) {return entry[key];} else {return null;}}/** 删除 * */this.remove = function(key) {if (delete entry[key]) {size--;}}/** 删除所有 * */this.removeAll = function() {for ( var key in entry) {this.remove(key);}}/** 是否包含 Key * */this.containsKey = function(key) {return (key in entry);}/** 是否包含 Value * */this.containsValue = function(value) {for ( var prop in entry) {if (entry[prop] == value) {return true;}}return false;}/** 所有 Value * */this.values = function() {var values = new Array(size);for ( var prop in entry) {values.push(entry[prop]);}return values;}/** 所有 Key * */this.keys = function() {var keys = new Array(size);for ( var prop in entry) {keys.push(prop);}return keys;}/** Map Size * */this.size = function() {return size;} }
另外,对于window.onLoad的实现,发现有一个小技巧需要注意,如果引用了第三方JS包,自己的window.onload可能会将其盖掉,所以最好像以下这样实现
var oldOnload = window.onload || function () {}; window.onload = function () {oldOnload();goSelectedYear(); }
第一行的写法是为了防止之前没有window.onload定义,后续调用时为undefined报JS错 。
刚发布完文章,就在网上看到一个十分简洁的map的写法,记录一下
var hashMap = { Set : function(key,value){this[key] = value}, Get : function(key){return this[key]}, Contains : function(key){return this.Get(key) == null?false:true}, Remove : function(key){delete this[key]} }
转载于:https://www.cnblogs.com/wesleyporter/archive/2012/09/29/2708105.html
实现map window.onload加载相关推荐
- js window.onload 加载多个函数和追加函数
平时做项目 经常需要使用window.onload, 用法如下: function func(){alert("this is window onload event!");ret ...
- google map结合数据库加载地图
最近有空看了看google api,所以想着做一个结合数据库动态显示地图标记功能.前几天总算给弄出来了,先看效果图: 1.在地图上显示标记 首先得加载google的javascript. <sc ...
- Super Map超图IServer加载BIM及精细模型操作
加载BIM及精细模型操作 SuperMap支持模型数据集.复合数据集生成三维切片缓存(S3M),为了优化模型在网络环境中的传输和解析,SuperMap iClient3D for WebGL(以下简称 ...
- uniapp中map组件动态加载marks标记
之前在uniapp项目中用到地图都是用h5的方式实现的,比如用高德地图webapi可以不收uniapp的限制,uniapp中vue页面中map组件功能太少,nvue中css写的有蛋疼. 言归正传,ma ...
- android 百度map 一个layout加载多个mapview,android 百度地图API 使用Marker和InfoWindow
前言:在android开发过程中,百度地图的使用是比较普遍的,但是如何使用,使用什么版本的百度API还是需要一些讲究. 在项目过程中,需要用到百度地图的marker和InfoWindow的功能. 标注 ...
- window.onload中调用函数报错的问题
今天练习js,忽然遇到了一个问题,就是window.onload加载完成后,调用其中的函数会报错, 上一段简单的代码: 报错信息: 报错原因: 当window.onload加载完成后,第一个alert ...
- 如何采用离线的 Google Map API 加载离线谷歌地图的方法
原文转自:http://www.arceyes.com/bbs/thread-18476-1-1.html 如何采用离线的 Google Map API 加载离线谷歌地图的方法 一.下载示例数据 这里 ...
- Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示
Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示 目录 Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展 ...
- 不同API加载geojson
1.mapboxgl:在底图上叠加geojson格式的矢量数据切片 <!DOCTYPE html> <html> <head><meta charset='u ...
最新文章
- 在 Ubuntu 上通过命令行改变 Linux 系统语言
- 你知道人工智能为什么这么火?
- SAP WM Storage Type下不允许负库存的设置
- [文章存档]Kudu 的 Debug Console 窗口如何查看更多文件
- java lock condition_Java 通过 Lock 和 竞争条件 Condition 实现生产者消费者模式
- 消防验收找问题,一般就是这些了!
- Qt中ui文件的使用
- jsp项目手动导出成war包
- 新时代ITer们的思考及购书有奖活动
- Android软键盘问题
- mysql导入hdfs参数_导入数据到HDFS
- python图片ocr识别手写印刷体中英文字体
- 当AI邂逅电能:与图知科技一起探索工业AI王座|白洞战报
- UWP 全屏与退出全屏
- RocketMQ 消息发送system busy、broker busy原因分析与解决方案
- OCR中文文字识别软件
- 一文看懂芯片后端报告
- Spring Security总结之如何让认证失败消息自定义在前端页面显示(一)
- jquery 堆栈溢出_带有jQuery和CSS3的漂亮照片堆栈库
- 量子计算 1 三个命题
热门文章
- python 倒叙 数组_打基础一定要吃透这12类 Python 内置函数
- dmx计算机,DMX是什么意思
- 开发板_Hi3516DV300核心板/开发板;Hi3516EV100+4G+AUDIO RTMP开发板;海思系列开发板/核心板定制开发...
- 演练-基于lamp安装wordpress--含安装包
- nginx利用referer指令实现防盗链配置
- [SPOJ375]QTREE - Query on a tree【树链剖分】
- Django之ORM使用以及模板语言
- Linear Algebra lecture6 note
- VisualSVN Server以及TortoiseSVN客户端的配置和使用方法
- 编写XML作为配置文件的高级操作库