最近项目中遇到要拼接一个如下结构的对象
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