遇到一个非常喜欢的代码
function Map() {
var struct = function(key, value) {
this.key = key;
this.value = value;
}
var 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);
}
var 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;
}
var remove = function(key) {
var v;
for (var i = 0; i < this.arr.length; i++) {
v = this.arr.pop();
if (v.key === key) {
continue;
}
this.arr.unshift(v);
}
}
var size = function() {
return this.arr.length;
}
var isEmpty = function() {
return this.arr.length <= 0;
}
this.arr = new Array();
this.get = get;
this.put = put;
this.remove = remove;
this.size = size;
this.isEmpty = isEmpty;
}
想到用js的map 是因为想做一个可插拔的插件。之前查询总是直接改sql 需求更多的字段时候总是多表关联。那种方法简单粗暴而且效率高。但是很多地方都引用这个sql。这样改会让速度普遍降慢。所以就想到了在js中处理
一开始只想到了用array() 后来想到了用map简直是为这个需求量身定做的
可是原生态js没有这个属性。
于是就有了上边代码
就像初学者的代码一样 很容易明白.