JavaScript 中的“Map”

最近项目中遇到要拼接一个如下结构的对象
var testdesign = {
SQL: "selet id, name from sales",
Fields: {
total: 2,
Field1: {
name: "id",
jdbcType: 4
},
Field2: {
name: "name",
jdbcType: 12
}
}
}
JavaScript默认对象表示方式{}可以视为其他语言中的Map,即一组键值对。JavaScript的对象有个小问题,就是键必须是字符串
我拼装的写法如下
    var ColAttr = {};
    var Fields = {};
    Fields["total"] = columnDefs.length;
    for(var j = 0 ;j < columnDefs.length; j++){
        var colName = columnDefs[j].field;
        ColAttr["name"] = columnDefs[j].field;
        var type = tableName + '.' + colName;
        ColAttr["jdbcType"] = tableColumnType[type];
        var Fieldnum = "Field" + Number(j+1);
        Fields[Fieldnum] = ColAttr;
    }

var templateDesign = {
"SQL": sql,
"Fields": Fields
}
 

 


然后我就想知道javaScript里面有没有Map这种数据类型?
答案是:
在最新的ES6规范引入了新的数据类型Map,但目前支持的浏览器比较少~
初始化如下:
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95


var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined

  

 


posted @ 2015-11-07 16:45  LJJ洁儿  阅读(215)  评论(0编辑  收藏  举报