我有一个结果集,它是一个对象数组。我需要克隆它,这样我就可以对其进行更改,而不会影响原始数据。
var data = w2ui.grid.records,
exclude = Array('recid', 'w2ui'); // Exclude these data points from the pivot
// Modify our tempData records to remove HTML
$.each(data, function(key, value) {
$.each(value, function(_key, _value) {
if(jQuery.inArray(_key, exclude) != -1) {
delete data[key][_key];
}else{
data[key][_key] = $('<div>'+_value+'</div>').text(); // <div></div> for those which are simply strings.
}
});
});
在这个例子中,我创建了一个名为data
的变量,并将其设置为我的“源数据”。我期望能够更改这个新数据变量,但实际上当对其进行更改时,源数据(
w2ui.grid.records
)也会被更改。有没有一种正确的方法可以克隆这个集合,以便我可以拥有一个新的数据实例来修改?
slice(0)
将数组进行克隆。例如:clonedArray = originalArray.slice(0)
,它将创建一个新的数组。 - Gerardo