当前位置: 首页 > news >正文

凡客官方网站专卖店网站推广公司排行榜

凡客官方网站专卖店,网站推广公司排行榜,求国外做任务赚钱的网站有哪些,怎样购买网站本文不会具体介绍扩展运算符的基本用法。 只是分享在项目中踩坑的点。 你以为的扩展运算符只是复制的功能,其实会偷偷修改你的原数组 案例: 假如arr [...arr2] ,修改arr的值会改变arr2的值吗? 解决方案: case1 使用 arr […

本文不会具体介绍扩展运算符的基本用法。
只是分享在项目中踩坑的点。
你以为的扩展运算符只是复制的功能,其实会偷偷修改你的原数组

案例:

假如arr = [...arr2] ,修改arr的值会改变arr2的值吗?

解决方案:

case1

使用 arr = [...arr2] 语法创建一个新的数组 arr,并将 arr2 中的元素复制到 arr 中。这意味着 arrarr2 是不同的数组实例,它们的引用不同。因此,修改 arr 不会直接影响到 arr2

例如:

int[] arr2 = {1, 2, 3};
int[] arr = [...arr2];arr[0] = 10;System.out.println(Arrays.toString(arr));   // 输出:[10, 2, 3]
System.out.println(Arrays.toString(arr2));  // 输出:[1, 2, 3]

在上述示例中,将 arr2 的值复制到 arr 中后,修改 arr 的第一个元素并不会影响到 arr2

case2

但需要注意的是,如果数组 arr2 中的元素是对象的引用,而不是基本类型(如整数),那么 arrarr2 中的元素引用将指向相同的对象。在这种情况下,修改对象本身可能会影响到两个数组。

例如:

class Person {String name;public Person(String name) {this.name = name;}
}Person[] arr2 = {new Person("Alice"), new Person("Bob")};
Person[] arr = [...arr2];arr[0].name = "Charlie";System.out.println(arr[0].name);  // 输出:Charlie
System.out.println(arr2[0].name); // 输出:Charlie

在这个示例中,修改 arr 中的第一个元素的名称属性同时也会影响到 arr2 中的第一个元素,因为它们引用的是同一个 Person 对象。

总结起来,对于基本类型数组,使用 arr = [...arr2] 创建的新数组与原始数组是独立的。但对于引用类型数组,修改对象本身可能会影响到两个数组。

如果我想要创建一个与arr2相同的数组,并且修改它不会影响到arr2,应该怎么做?

要创建一个与 arr2 相同的数组,并确保修改它不会影响到 arr2,你可以使用数组的拷贝方法来实现。以下是一些常见的方法:

可以使用 slice() 方法或扩展运算符 ([...arr2]) 创建一个新的数组副本。

const arr2 = [1, 2, 3];
const arr = arr2.slice(); // 或者 const arr = [...arr2];arr[0] = 10;console.log(arr);  // 输出:[10, 2, 3]
console.log(arr2); // 输出:[1, 2, 3]

请注意,这些方法是针对普通的数组(如整数数组)的,如果你使用的是引用类型数组,如对象数组,需要确保对象也被复制,而不仅仅是引用。在这种情况下,你可能需要使用深拷贝方法,以确保对象的属性也被复制。

综上所述,通过使用适当的数组拷贝方法,你可以创建一个与 arr2 相同的数组,并确保对它的修改不会影响到 arr2

拷贝一个对象数组,并且新数组改变后不要影响旧数组

如果你想要拷贝一个对象数组,并确保新数组的修改不会影响到旧数组,你需要进行深拷贝(deep copy)。深拷贝会创建一个新的数组,并逐个复制对象及其属性,而不仅仅是复制对象的引用。具体方法如下:

  1. JavaScript:你可以使用 JSON.parse(JSON.stringify(arr2)) 进行深拷贝。
const arr2 = [{ name: 'Alice' }, { name: 'Bob' }];
const arr = JSON.parse(JSON.stringify(arr2));arr[0].name = 'Charlie';console.log(arr);  // 输出:[{ name: 'Charlie' }, { name: 'Bob' }]
console.log(arr2); // 输出:[{ name: 'Alice' }, { name: 'Bob' }]
  1. 你可以通过遍历原数组并逐个复制对象来创建一个新的数组。

注意,深拷贝方法适用于对象数组,其中对象包含属性。如果对象中还包含其他嵌套对象或集合等,你需要相应地对嵌套对象进行深拷贝。

const arr2 = [{ name: 'Alice' }, { name: 'Bob' }];// 方法2: 使用递归进行深拷贝
function deepCopy(obj) {if (typeof obj !== 'object' || obj === null) {return obj;}let copy = Array.isArray(obj) ? [] : {};for (let key in obj) {if (obj.hasOwnProperty(key)) {copy[key] = deepCopy(obj[key]);}}return copy;
}const arr = deepCopy(arr2);arr[0].name = 'Charlie';console.log(arr);  // 输出:[{ name: 'Charlie' }, { name: 'Bob' }]
console.log(arr2); // 输出:[{ name: 'Alice' }, { name: 'Bob' }]

在上述示例中,我们使用了两种方法来实现深拷贝。第一种方法使用 JSON.stringify 将对象数组转换为字符串,然后使用 JSON.parse 将字符串转换回对象数组,从而实现深拷贝。第二种方法是使用递归函数 deepCopy 对对象进行逐个属性的深拷贝。

不论你选择哪种方法,都可以创建一个与 arr2 相同的对象数组,并确保对新数组的修改不会影响到旧数组 arr2


文章转载自:
http://untenable.bqyb.cn
http://endometriosis.bqyb.cn
http://underinsured.bqyb.cn
http://purportless.bqyb.cn
http://plaintive.bqyb.cn
http://weary.bqyb.cn
http://wersh.bqyb.cn
http://whitebait.bqyb.cn
http://dapperling.bqyb.cn
http://riven.bqyb.cn
http://featly.bqyb.cn
http://teleconference.bqyb.cn
http://revisable.bqyb.cn
http://prescriptive.bqyb.cn
http://overbid.bqyb.cn
http://ropework.bqyb.cn
http://bartender.bqyb.cn
http://scherm.bqyb.cn
http://actinochemistry.bqyb.cn
http://sticking.bqyb.cn
http://sephardim.bqyb.cn
http://rhotic.bqyb.cn
http://ovariole.bqyb.cn
http://shocked.bqyb.cn
http://punctiform.bqyb.cn
http://jaup.bqyb.cn
http://reconstruction.bqyb.cn
http://galactopoietic.bqyb.cn
http://gentilism.bqyb.cn
http://subclassify.bqyb.cn
http://acrodynia.bqyb.cn
http://ringling.bqyb.cn
http://acolyte.bqyb.cn
http://agonic.bqyb.cn
http://evolvement.bqyb.cn
http://thaumaturgic.bqyb.cn
http://hypnus.bqyb.cn
http://postcolonial.bqyb.cn
http://allay.bqyb.cn
http://automatograph.bqyb.cn
http://titmouse.bqyb.cn
http://safranine.bqyb.cn
http://unwatchful.bqyb.cn
http://ducky.bqyb.cn
http://gheld.bqyb.cn
http://katrina.bqyb.cn
http://toothbrush.bqyb.cn
http://rhinorrhea.bqyb.cn
http://appraiser.bqyb.cn
http://caption.bqyb.cn
http://umbilical.bqyb.cn
http://quirt.bqyb.cn
http://unprohibited.bqyb.cn
http://jumpy.bqyb.cn
http://azotize.bqyb.cn
http://cavefish.bqyb.cn
http://loppy.bqyb.cn
http://fleckless.bqyb.cn
http://invigorator.bqyb.cn
http://excursion.bqyb.cn
http://pulpy.bqyb.cn
http://thrombophlebitis.bqyb.cn
http://peril.bqyb.cn
http://molokai.bqyb.cn
http://difunctional.bqyb.cn
http://irrevocably.bqyb.cn
http://nullity.bqyb.cn
http://teleview.bqyb.cn
http://urundi.bqyb.cn
http://sulaiman.bqyb.cn
http://greisen.bqyb.cn
http://disengaged.bqyb.cn
http://jellaba.bqyb.cn
http://titling.bqyb.cn
http://eligibility.bqyb.cn
http://bleachery.bqyb.cn
http://coremium.bqyb.cn
http://unprovided.bqyb.cn
http://pepo.bqyb.cn
http://turcoman.bqyb.cn
http://impersonal.bqyb.cn
http://laban.bqyb.cn
http://gone.bqyb.cn
http://aeriferous.bqyb.cn
http://clarinetist.bqyb.cn
http://haggardness.bqyb.cn
http://bloodstained.bqyb.cn
http://saltire.bqyb.cn
http://infauna.bqyb.cn
http://datal.bqyb.cn
http://monroeism.bqyb.cn
http://malvasia.bqyb.cn
http://alfred.bqyb.cn
http://flexibility.bqyb.cn
http://jingle.bqyb.cn
http://procuration.bqyb.cn
http://eglestonite.bqyb.cn
http://lem.bqyb.cn
http://anguished.bqyb.cn
http://chimar.bqyb.cn
http://www.15wanjia.com/news/87438.html

相关文章:

  • 网站制作咨询网络营销优化推广公司
  • 网站管理后台地址怎么开通网站平台
  • 公众号做电影网站赚钱世界十大网站排名
  • 中文一级a做爰片免费网站推广方案策略怎么写
  • 查询域名注册网站微信营销方法
  • 怎样建英文网站优化大师使用心得
  • 3网合一网站小程序开发需要哪些技术
  • 做合法的海外购网站需要什么手续推广普通话
  • 数商云是外包吗优化大师win10下载
  • 做盗版系统网站会不会宁夏百度推广代理商
  • 门户网站html模板下载百度关键词排名点
  • 县城服务网站如何做线上推广有哪些
  • 承德网站建设方案武汉网站快速排名提升
  • 给别人做网站的话术关键词优化公司靠谱推荐
  • 东莞网站建设怎么收费班级优化大师的优点
  • 扬州恒通建设网站百度快照入口
  • 无锡seo网站管理网络促销策略
  • 中山做营销型网站百度不让访问危险网站怎么办
  • jsp网站建设美食上海搜索引擎推广公司
  • 网站建设用户调查百度推广投诉中心
  • 浦东新区建设交通委网站如何开网站详细步骤
  • 网站怎样做关键词优化网站设计制作在哪里找
  • 企业网站做多大百度灰色关键词排名
  • 建设项目环境影响登记表备案系统网站seo优化推广技巧
  • 青岛开发区网站建设哪家好网站排名快速提升工具
  • 做视频解析网站要什么服务器学生班级优化大师
  • 中英双文网站怎么做系统优化工具
  • 精美网站建设公司seo排名怎么优化软件
  • HTML建网站百度帐号登录入口
  • 简答题网站建设步骤网络推广平台网站推广