Cocos2d-JS 实现Map Vector

Cocos2d-JS 实现Map Vector,第1张

概述/** * 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
/** * 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存