gpt4 book ai didi

javascript - 对包含对象的数组进行切片并获取包含对象副本的数组

转载 作者:行者123 更新时间:2023-12-02 16:39:33 26 4
gpt4 key购买 nike

当我制作一个包含对象的数组切片时,新数组仍然具有对初始数组中对象的引用。如何制作带有对象副本的切片?

var obj1 = {name: 'object1'};
var obj2 = {name: 'object2'};
var array = [obj1, obj2];
var arraySlice = array.slice(0, 1);
arraySlice[0].name = 'object1RENAMED';
console.log(array[0].name);
console.log(arraySlice[0].name);

http://jsfiddle.net/eqgj873h/

打印:

object1RENAMED
object1RENAMED

最佳答案

在我们的例子中,您对值有相同的引用(值是对象),这就是您可以更改不同数组中的值的原因。您需要创建深度克隆/副本:

var arraySlice = JSON.parse(JSON.stringify(array.slice(0, 1)));

如果你使用 jQuery,你可以这样做

var arraySlice = $.extend(true, [], array.slice(0, 1));

演示:http://jsfiddle.net/eqgj873h/2/

关于javascript - 对包含对象的数组进行切片并获取包含对象副本的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27619849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com