论坛首页 Web前端技术论坛

Map array 和 array

浏览 2667 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-11  
今天看某人写的 JavaScript 模仿HashMap 帖子的时候发现。。。

竟然有很多人 说没有什么区别,我很是疑惑。。。。

var mapArray = {
 key1: content1,
 key2: content2
};

var array = new Array();
array[0] = new Array();
array[0][0] = "1";
array[0][1] = "2";


mapArray 是一个key值 和 content 值相对应的数组对象



array 虽然将array[0]作为一个新的数组了,可它依然是个普通的数组啊。。。

不明白很多人为什么会说他们是一样的,没什么区别,说在开发中根本不会遇到。。。

从我开发到今天来看 已经遇到过不少这样的用法了,,。。。


比如我们要写一个通用方法  以css 为例

      
function setCss(elem, options){
		if( options && typeof options == 'object' ){
			for( var name in options ){
				var nameCase = name.replace(/\-(\w)/g, function(all, letter){
					return letter.toUpperCase();
				});
				
				elem.style[nameCase] = options[name];
				
				if( jPack.browser.msie && name == 'opacity' )
					elem.style.filter = 'alpha(opacity='+options["opacity"]*100+')';
			}
		}
	}


这个地方options 参数就应该传一个 mapArray 进来才方便使用啊。。。。。。。

调用:

    
 setCss("demo1", {"width": "100px", "height": "50px"});


这样的例子不就最好的应用了mapArray 了吗? 如果不用关联性的数组,我们要一个个的去添加?

setCss1("demo1", "100px", "50px");

这样即不方便别人使用,自己写方法的时候也需要大量的代码。。。。

个人愚见。。。希望大家来讨论。。。

至于复杂度,我就暂时没有把它考虑进来讨论了。。。

   发表时间:2009-06-13  
js中,这种map方式传递参数,真的简便了许多,同时结合 default 和extends 就
完全实现了默认参数的处理,而且还优雅的解决了 空值的问题.

用起来很顺手,而且参数的含义也很清晰
0 请登录后投票
   发表时间:2009-06-13  
ming500 写道
js中,这种map方式传递参数,真的简便了许多,同时结合 default 和extends 就
完全实现了默认参数的处理,而且还优雅的解决了 空值的问题.

用起来很顺手,而且参数的含义也很清晰

是啊。我也是这么觉得的。。。在某些情况下这种方式的确非常直观。

可是那天看帖子。。却有好多人。。说这种 Map 是没有必要的。。。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics