/** * Map * Created by lovell on 16/6/20. */pg.Map = cc.Class.extend({ _elements : null});/** * 创建Map * @returns {*} */pg.Map.create = function (){ var res = new pg.Map(); res.clear(); return res;};/** * Map元素的长度 * @returns {*} */pg.Map.prototype.size = function () { return this._elements.length;};/** * 判断Map是否为空 * @returns {boolean} */pg.Map.prototype.isEmpty = function () { return (this._elements.length < 1);};pg.Map.prototype.clear = function () { this._elements = [];};/** * 向Map中增加元素 * @param key * @param value */pg.Map.prototype.put = function (key,value) { if (this.containKey(key)) { this.remove(key); } this._elements.push({ key: key, value: value });};/** * 向Map中插入元素 * @param index * @param key * @param value */pg.Map.prototype.insert = function (index,key,value) { if (this.containKey(key)) { this.remove(key); } this._elements.splice(index,0,{ key: key, value: value });};/** * 删除指定Key的元素 * @param key * @returns {boolean} */pg.Map.prototype.remove = function (key) { var ret = false; try { for (var i=0; i<this._elements.length; i++) { if (this._elements[i].key == key) { this._elements.splice(i,1); return true; } } } catch (e) { ret = false; } return ret;};/** * 获取指定Key的元素值Value,失败返回NulL * @param key * @returns {*} */pg.Map.prototype.get = function (key) { try { for (var i = 0; i < this._elements.length; i++) { if (this._elements[i].key == key) { return this._elements[i].value; } } } catch (e) { return null; }};/** * 设置指定Key的元素值Value,失败返回FALSE * @param key * @param value * @returns {boolean} */pg.Map.prototype.set = function (key,value) { try { for (var i = 0; i < this._elements.length; i++) { if (this._elements[i].key == key) { this._elements[i].value = value; return true; } } } catch (e) { return false; }};/** * 通过Index获取对应的Value * @param index * @returns {*} */pg.Map.prototype.getValueByIndex = function (index) { return this._elements[index].value;};/** * 通过Key获取对应的Index * @param key * @returns {number} */pg.Map.prototype.getIndexByKey = function (key) { try { for (i = 0; i < this._elements.length; i++) { if (this._elements[i].key == key) { return i; } } } catch (e) { return -1; }};/** * 通过Index获得Key * @param index * @returns {*} */pg.Map.prototype.getKeyByIndex = function (index) { return this._elements[index].key;};pg.Map.prototype.removeByIndex = function (index) { this.remove(this._elements[index].key);};/** * 获取指定索引的元素 * @param index * @returns {*} */pg.Map.prototype.element = function (index) { if (index < 0 || index >= this._elements.length) { return null; } return this._elements[index];};/** * 判断Map中是否含有指定KEY的元素 * @param key * @returns {boolean} */pg.Map.prototype.containKey = function (key) { var ret = false; try { for (var i = 0; i < this._elements.length; i++) { if (this._elements[i].key == key) { ret = true; } } } catch (e) { ret = false; } return ret;};/** * 判断Map中是否含有指定VALUE的元素 * @param value * @returns {boolean} */pg.Map.prototype.containValue = function (value) { var ret = false; try { for (var i = 0; i < this._elements.length; i++) { if (this._elements[i].value == value) { ret = true; } } } catch (e) { ret = false; } return ret;};/** * 获取Map中所有VALUE的数组 * @returns {Array} */pg.Map.prototype.values = function () { var arr = []; for (var i = 0; i < this._elements.length; i++) { arr.push(this._elements[i].value); } return arr;};/** * 获取Map中所有KEY的数组 * @returns {Array} */pg.Map.prototype.keys = function () { var arr = []; for (var i = 0; i < this._elements.length; i++) { arr.push(this._elements[i].key); } return arr;};
/************************************************************************************************************************************************************************************** * Created by lovell on 8/1/16. */pg.Vector = cc.Class.extend({ _array: null});pg.Vector.create = function () { var res = new pg.Vector(); if (res.init()) { return res; } res = null; return null;};pg.Vector.prototype.init = function () { this._array = []; return true;};pg.Vector.prototype.push = function (obj) { this._array.push(obj);};pg.Vector.prototype.at = function (index) { if (index < 0 || index >= this._array.length) { return null; } return this._array[index];};pg.Vector.prototype.erase = function (obj) { for (var i = 0; i < this._array.length; i++) { if (this._array[i] == obj) { this._array.splice(i,1); break; } }};pg.Vector.prototype.eraseAt = function (index) { this._array.splice(index,1);};pg.Vector.prototype.contains = function (obj) { for (var i = 0; i < this._array.length; i++) { if (this._array[i] == obj) { return true; } } return false;};pg.Vector.prototype.size = function () { return this._array.length;};pg.Vector.prototype.insert = function (index,obj) { this._array.splice(index,obj);};pg.Vector.prototype.clear = function () { this._array.length = 0;};总结
以上是内存溢出为你收集整理的Cocos2d-JS 实现Map Vector全部内容,希望文章能够帮你解决Cocos2d-JS 实现Map Vector所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)