需求背景
有这样一个需求,数据库中存储了相应的键值对,客户希望页面填报的时候只要选择了对应的键,另外单元格的值就自动填写。
对于这种键值对的存储,在Java中使用Map可以轻松实现,但是在js中Map就需要自己来实现了。
本文即通过实现js的Map数据结构,然后通过单元格的自动计算调用自定义js函数来解决上面提到的需求。
实现步骤
1、设计报表
要求在页面上输入管号的时候,规格能自动填入。B1和C1分别取出来管号和规格的所有数据,并设其扩展方式为”不可扩展”,详见下图,具体用途在下面详细说明。
2、js中Map实现
实现上面的需求只需要Map的创建,以及Map的put和get方法,这里只贴出这几点的具体实现,Map的完整实现见文章最后。
function Map() {
this.elements = new Array();
//向MAP中增加元素(key, value)
this.put = function (_key, _value) {
this.elements.push({key:_key, value:_value});
};
//获取指定KEY的元素值VALUE,失败返回NULL
this.get = function (_key) {
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}