重写对象的toString方法,按照json数据的规则
然后前台string转json
控制台打印
这个方法不需要引入其他包
如果map的key属性过多,或者key是集合,可以在后台先转json,然后前台一样String转json,再遍历
需要引入包
前台
首先js暂时还没有map类型。所以需要先自己定义一个Map类型。代码如下
function Map () {/**
* 结构
* @param key
* @param value
*/
function Struct(key,value) {
this.key = key
this.value = value
}
/**
* 数据存放数组
*/
this.arr = []
/**
* 增加数据
* @param key {String}
* @param value {Object}
*/
this.put = function (key,value) {
for (var i = 0 i < this.arr.length i++) {
if (this.arr[i].key === key) {
this.arr[i].value = value
return
}
}
this.arr[this.arr.length] = new Struct(key,value)
}
/**
* 通过key获取数据
* @param key {String}
* @returns {Object}
*/
this.get = function (key) {
for (var i = 0 i < this.arr.length i++) {
if (this.arr[i].key === key) {
return this.arr[i].value
}
}
return null
}
/**
* 删除数据
* @param key{String}
*/
this.remove = function (key) {
var v
for (var i = 0 i < this.arr.length i++) {
v = this.arr[i]
if (v.key === key) {
this.arr.splice(i,1)
return
}
}
}
/**
* 是否存在key
* @param key {String}
* @returns {boolean}
*/
this.containsKey = function (key) {
var v
for (var i = 0 i < this.arr.length i++) {
v = this.arr[i]
if (v.key === key) {
return true
}
}
return false
}
/**
* 获取map数据量
* @returns {Number}
*/
this.size = function () {
return this.arr.length
}
/**
* 判断Map是否为空
* @returns {boolean}
*/
this.isEmpty = function () {
return this.arr.length <= 0
}
/**
* 全部清空
*/
this.removeAll = function () {
this.arr = []
}
}
然后放入数据再做判断
var map = new Map()map.put("str",'aaaaaa')
console.log(map.get('str'))
//判断是否为Map类型。 instanceof
console.log(map instanceof Map)
var map = new HashMap()map.put("a","1")
map.put("b","2")
遍历:
var key = map.keySet()
for (var i in key){
alert(map.get(key[i]))
}
注:js 中使用map,要先导入一个HashMap.js文件
没要求,引入这个文件之后,可以直接使用hashmap了