直接看代码:
Array.prototype.clear = function() {
this.length = 0;
}
Array.prototype.insertAt = function(index, obj) {
this.splice(index, 0, obj);
}
Array.prototype.removeAt = function(index) {
this.splice(index, 1);
}
Array.prototype.remove = function(obj) {
try {
for (var i = 0; i < this.length; i++) {
if (obj == this[i]) {
this.removeAt(i);
break;
}
}
i = 0;
}
catch (e) {
debugger;
}
}
克隆:主要针对深度克隆(防止浅克隆后,克隆对象与源对象指向同一个内存区域)
Array.prototype.clone = function() {
// 不能源数据组进行操作
var array = new Array();
for (var i = 0, l = this.length; i < l; i++) {
array.push(cloneObj(this[i]));
}
return array;
}
// 克服对象
function cloneObj(obj) {
var objClone;
if (obj.constructor == Object) {
objClone = new obj.constructor();
}
else {
objClone = new obj.constructor(obj.valueOf());
}
for (var key in obj) {
if (objClone[key] != obj[key]) {
if (typeof (obj[key]) == 'object') {
objClone[key] = cloneObj(obj[key]);
}
else {
objClone[key] = obj[key];
}
}
}
objClone.toString = obj.toString;
objClone.valueOf = obj.valueOf;
return objClone;
}