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