Map迭代器

//map 迭代器对象
/* 例子;
var map_itr = new _iterator(map);
while(map_itr._has_next()){
var entry = map_itr._next();
print(entry.key);
print(entry.value);
}
*/
var _iterator = function(map){
var that = this;
that._index = 0;
that._key_arr_of_map = [];
that._value_arr_of_map = [];
(function _iterator(map){
for(var key in map){
that._key_arr_of_map.push(key);
that._value_arr_of_map.push(map[key]);
}
})(map);
that._map_length = that._key_arr_of_map.length;

this._has_next = function(){
if(that._index < that._map_length)
return true;
return false;
}

this._next = function(){
var o = {};
o["key"] = that._key_arr_of_map[that._index];
o["value"] = that._value_arr_of_map[that._index];
that._index++;
return o;
}

}

原文地址:https://www.cnblogs.com/hyp5490-/p/6376936.html