我正在尝试编写一个函数,用于复制一个数组的数组。我尝试了blah.slice(0); 但它只复制了引用。我需要制作一个副本,以保留原始数据不变。
我在http://my.opera.com/GreyWyvern/blog/show.dml/1725165找到了这个原型方法。
我在http://my.opera.com/GreyWyvern/blog/show.dml/1725165找到了这个原型方法。
Object.prototype.clone = function() {
var newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i == 'clone') continue;
if (this[i] && typeof this[i] == "object") {
newObj[i] = this[i].clone();
} else newObj[i] = this[i]
} return newObj;
};
它可以工作,但会干扰我正在使用的jQuery插件 - 因此我需要将其转换为函数...而递归不是我的强项。
非常感谢您的帮助!
谢谢!
var
声明变量 "i"!用for ... in
循环遍历数组可能存在风险,最好使用数值下标。 - Pointy