javascript - 如何克隆 Javascript 对象数组?

标签 javascript jquery

我有一个结果集,它是一个对象数组。我需要克隆它,以便在不触及原始数据的情况下对其进行更改。

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)。

有没有合适的方法来克隆这个集合,以便我可以有一个新的数据实例来修改?

最佳答案

编辑

深度克隆使用 JSON.parse(JSON.stringify(arr));

浅克隆使用slice(0);

var arr = [{'obj1':1}, {'obj2':2}];
var clone = arr.slice(0);
console.log(clone);

var arr = [{'obj1':1}, {'obj2':2}]
var clone = JSON.parse(JSON.stringify(arr));
console.log(clone);

关于javascript - 如何克隆 Javascript 对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42523881/

相关文章:

javascript - 默认情况下导航栏下拉项无法隐藏

javascript - 更改div中的字体大小

javascript - 如何让内容粘在侧边栏的底部?

jQuery Cycle 插件,将类添加到当前幻灯片缩略图/链接

javascript - 未捕获的语法错误 : Invalid destructuring assignment target

javascript - 无法映射通过 JavaScript 的 fetch API 创建的数组

javascript - 坚持创建一个将返回对象的函数

c# - 比较来自客户端浏览器和远程服务器的 DateTime,C#

javascript - 将鼠标悬停在 Canvas 中的图像上

jquery - 如何使用 JQuery 和 AJAX 设置元素的属性?