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

彩妆网站建设策划书网站建设主要问题及建议

彩妆网站建设策划书,网站建设主要问题及建议,wordpress建站教程书籍,网络营销服务公司有哪些本文不会具体介绍扩展运算符的基本用法。 只是分享在项目中踩坑的点。 你以为的扩展运算符只是复制的功能#xff0c;其实会偷偷修改你的原数组 案例#xff1a; 假如arr [...arr2] #xff0c;修改arr的值会改变arr2的值吗? 解决方案#xff1a; case1 使用 arr […本文不会具体介绍扩展运算符的基本用法。 只是分享在项目中踩坑的点。 你以为的扩展运算符只是复制的功能其实会偷偷修改你的原数组 案例 假如arr [...arr2] 修改arr的值会改变arr2的值吗? 解决方案 case1 使用 arr [...arr2] 语法创建一个新的数组 arr并将 arr2 中的元素复制到 arr 中。这意味着 arr 和 arr2 是不同的数组实例它们的引用不同。因此修改 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 中的元素是对象的引用而不是基本类型如整数那么 arr 和 arr2 中的元素引用将指向相同的对象。在这种情况下修改对象本身可能会影响到两个数组。 例如 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。深拷贝会创建一个新的数组并逐个复制对象及其属性而不仅仅是复制对象的引用。具体方法如下 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 }]你可以通过遍历原数组并逐个复制对象来创建一个新的数组。 注意深拷贝方法适用于对象数组其中对象包含属性。如果对象中还包含其他嵌套对象或集合等你需要相应地对嵌套对象进行深拷贝。 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://www.hkea.cn/news/14289383/

相关文章:

  • 昆明网站设计制作公司网址建站
  • 如何做网站静态页面企业文化建设方案案例
  • 家政月嫂网站源码html5商城网站
  • 成都网站建设选择到访率企业宣传类网站建设
  • 建设一个视频网站需要什么站酷app
  • 昆明网站建设时间课程资源网站的建设
  • 狐表做网站西宁最好的网络公司
  • 河北建设网站信息查询中心网络服务商怎么找
  • 网站开发语言那个好黄骅港天气预报
  • 怎么做旅游网站自己做网站接入微信和支付宝
  • 无锡滨湖住房与城乡建设局网站阿里云服务器搭建网站
  • 网站色彩的应用免费网站建设必择山东绘政科技
  • 推广策划案怎么写北京百度seo服务
  • 谷歌有做网站建设中山 家居 骏域网站建设专家
  • 郑州港区建设投资公司网站做健身网站
  • 做网站需要的信息网站建设管理和运行维护制度
  • jsp mysql 网站开发wordpress hls
  • 广西北海市住房和建设厅网站tripod wordpress
  • 临湘市建设局网站网站怎么做定位功能
  • Php做网站创业母婴用品网站建设
  • 房产网站怎么做异地楼盘nginx wordpress 多站点
  • 咸宁网站设计如何拥有自己的域名
  • 保定建设网站科技广告公司网站模板
  • 昌邑微信网站建设公司设计公司网站多少钱
  • 电脑做网站服务器教程做外贸网站 用国外空间 还是 国内空间 区别
  • 商城型网站建设多少钱注册公司费用计入什么科目
  • 广州手机网站建设哪家好软件外包合同模板
  • 河北省网站建设公司住房和城乡建设部网站安广东省
  • 商城建网站wordpress编辑器位置
  • 陕西网站建设公司找哪家好东莞优化公司首选3火星