官方解释:Map对象就是简单的键/值映射.其中键和值可以是任意值(原始值或对象值).
简单应用如下:
如实现color与status的一一对应
var status_map = { 'null': 'unbegin', 'yellow': 'beginning', 'lightgray': 'end' }; var color='yellow'; var status = status_map[color]; status
得到status的值为'beginning';
也可以这样:
var status_map = { 'null': function () { return 'unbegin' }, 'yellow': function () { return 'beginning' }, 'lightgray': function () { return 'end' } } var color='yellow'; var status = status_map[color]();//注意区别,试想一下不加后面的括号结果会怎样 status
也可以得到status的值为'beginning';
如此以来,再联想一下,这样的结构是不是与switch函数有些像
function color_to_status(color) { switch (color) { case 'null': return 'unbegin'; break; case 'yellow': return 'beginning'; break; case 'lightgray': return 'end'; break; default : break; } } var color='yellow'; var status = status_to_color(color);
这样函数中的switch函数便可用map对象来代替
关于switch与map对象的性能比较可参看http://agilejava.blogbus.com/logs/39858996.html
参考链接https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/Map
转载于:https://blog.51cto.com/oulafen/1357244