您的位置:首页 > 移动开发 > Cocos引擎

cocos2djs拷贝数据方法

2016-04-02 22:35 337 查看
拷贝对象或数组
FUN = {};
FUN.CloneData = function (dataObj) {
var obj = null;
if (typeof dataObj === "object" && Object.prototype.toString.call(dataObj) === '[object Object]') //拷贝对象
{
obj = new Object();
for (var index in dataObj)
{
var data = dataObj[index];
if ((typeof data === "object" && Object.prototype.toString.call(data) === '[object Object]') ||
(Array.isArray(data) || (typeof data === 'object' && Object.prototype.toString.call(data) === '[object Array]'))) {
obj[index] = FUN.CloneData(data);
} else {
obj[index] = data;
}
}
}
else if (Array.isArray(dataObj) || (typeof dataObj === 'object' && Object.prototype.toString.call(dataObj) === '[object Array]')) //拷贝数组
{
obj = new Array();
for (var index = 0; index < dataObj.length; ++index)
{
var data = dataObj[index];
if ((typeof data === "object" && Object.prototype.toString.call(data) === '[object Object]') ||
(Array.isArray(data) || (typeof data === 'object' && Object.prototype.toString.call(data) === '[object Array]'))) {
obj.push(FUN.CloneData(data));
} else {
obj.push(data[index]);
}
}
}

return obj;
};


根据值判断两个数组是否相等

FUN.IsArrayEqual = function (array1, array2, key) {
if (array1.length == 0 && array2.length == 0)
return true;

var a = FUN.CloneData(array1);
var b = FUN.CloneData(array2);

if (a.length != b.length || !cc.isNumber(parseInt(a[0][key])))
return false;

a.sort(function (cur, next) {
return parseInt(next[key]) - parseInt(cur[key]);
});

b.sort(function (cur, next) {
return parseInt(next[key]) - parseInt(cur[key]);
});

for (var index = 0; index < a.length; ++index) {
if (parseInt(a[index][key]) != parseInt(b[index][key]))
return false;
}

return true;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: