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

达州达县网站建设怎么做劳务公司网站

达州达县网站建设,怎么做劳务公司网站,个人网站数据库怎么做,网站开发需要甲方提供什么前言 js拷贝数组对象#xff1a;浅拷贝深拷贝#xff0c;包括#xff1a;Object.assign、concat、slice、JSON.parse(JSON.stringify()) 场景#xff1a;弹窗选择组织结构#xff08;树形结构#xff09;#xff0c;选择后显示相关数据至输入框中#xff08;每次选…前言 js拷贝数组对象浅拷贝深拷贝包括Object.assign、concat、slice、JSON.parse(JSON.stringify()) 场景弹窗选择组织结构树形结构选择后显示相关数据至输入框中每次选择都将重新拷贝初始组织结构数据 博客地址芒果橙的个人博客 【http://mangocheng.com】 关于浅拷贝、深拷贝的使用场景 在开发过程中需要基于某一个对象上进行新增修改的场景是非常多的因此经常会进行对象的拷贝。在不需要多次复用源数据的情况下那么对象的拷贝只需要进行赋值就能满足要求即浅拷贝但有时候需要多次使用到初始的原数组那么则需要深拷贝以达到每次拷贝原数组都是初始数据的目的 常用的拷贝方法 场景 弹窗选择组织结构树形结构选择后显示相关数据至输入框中 数据格式[ {},{}] 场景数据案例使用 const copy {// 源数组1简单数组sourceArr: [a, b, c], targetArr: [],// 源数组2复杂数组sourceArrAndObj: [ {A: 1,B: 2},{S: 10,T: 20}],targetArrAndObj: [] }1. 普通赋值语法-简单数据、复杂数据均为浅拷贝 目标数组源数组 测试数据 源数组1-sourceArr[‘a’, ‘b’, ‘c’]目标数组1-targetArr[]源数组2-sourceArrAndObj[ { ‘A’ : 1, ‘B’:2 }, { ‘S’ : 10, ‘T’ : 20 } ]目标数组2-targetArrAndObj: [] 操作 赋值目标数组增加目标数组1数据[d、e]增加目标数组2数据属性[C、D]、修改属性[S、T] 输出 源数组1-sourceArr a,b,c,d,e源数组2-sourceArrAndObj [ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ] 结果结论 源数组改变浅拷贝作用 console.log(sourceArr , this.sourceArr.join());console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArr this.sourceArr;this.targetArrAndObj this.sourceArrAndObj;console.log(赋值后targetArr , this.targetArr.join());console.log(赋值后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后sourceArrAndObj, this.sourceArrAndObj);2. Object.assign(target,source)-简单数据深拷贝、复杂数据浅拷贝 Object.assign(目标数组,源数组) 测试简单数据 源数组sourceArr[‘a’, ‘b’, ‘c’]目标数组targetArr[] 操作 增加目标数组数据[d、e] 输出 targetArr a,b,c,d,esourceArr a,b,c 结果结论 源数组未改变深拷贝作用 console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());Object.assign(this.targetArr, this.sourceArr);console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());测试复杂数据 源数组sourceArrAndObj[ { ‘A’ : 1, ‘B’:2 }, { ‘S’ : 10, ‘T’ : 20 } ]目标数组targetArrAndObj: [] 操作 增加目标数组数据属性[C、D]修改属性[S、T] 输出 sourceArrAndObj[ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ]targetArrAndObj[ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ] 结果结论 源数组改变与目标数组一样浅拷贝作用 console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);Object.assign(this.targetArrAndObj, this.sourceArrAndObj);console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);3. concat()/slice()-简单数据深拷贝、复杂数据浅拷贝 目标数组源数组.concat(); 目标数组源数组.slice(); 测试简单数据 源数组sourceArr[‘a’, ‘b’, ‘c’]目标数组targetArr[] 操作 增加目标数组数据[d、e] 输出 sourceArr a,b,ctargetArr a,b,c,d,e 结果结论 源数组未改变深拷贝作用 console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());this.targetArr this.sourceArr.concat();// this.targetArr this.sourceArr.slice();console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());测试复杂数据 源数组sourceArrAndObj[ { ‘A’ : 1, ‘B’:2 }, { ‘S’ : 10, ‘T’ : 20 } ]目标数组targetArrAndObj: [] 操作 增加目标数组数据属性[C、D]修改属性[S、T] 输出 sourceArrAndObj[ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ]targetArrAndObj[ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ] 结果结论 源数组改变与目标数组一样浅拷贝作用 console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArrAndObj this.sourceArrAndObj.concat();// this.targetArrAndObj this.sourceArrAndObj.slice();console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);4. JSON.parse(JSON.stringify())-简单数据、复杂数据均为深拷贝 目标数组JSON.parse(JSON.stringify(源数组)) 测试简单数据 源数组sourceArr[‘a’, ‘b’, ‘c’]目标数组targetArr[] 操作 增加目标数组数据[d、e] 输出 targetArr a,b,c,d,esourceArr a,b,c 结果结论 源数组未改变深拷贝作用 console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());this.targetArr JSON.parse(JSON.stringify(this.sourceArr));console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());测试复杂数据 源数组sourceArrAndObj[ { ‘A’ : 1, ‘B’:2 }, { ‘S’ : 10, ‘T’ : 20 } ]目标数组targetArrAndObj: [] 操作 增加目标数组数据属性[C、D]修改属性[S、T] 输出 sourceArrAndObj[ { ‘A’ : 1, ‘B’:2 }, { ‘S’ : 10, ‘T’ : 20 } ]targetArrAndObj[ { ‘A’ : 1, ‘B’:2, ‘C’ : 3, ‘D’ : 4 }, { ‘S’ : 30, ‘T’ : 40 } ] 结果结论 源数组未改变深拷贝作用 console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArrAndObj JSON.parse(JSON.stringify(this.sourceArrAndObj));console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);参考代码 const copy {sourceArr: [a, b, c],targetArr: [],sourceArrAndObj: [{A: 1,B: 2},{S: 10,T: 20}],targetArrAndObj: [],/*** 赋值*/equalSign: function () {console.log(sourceArr , this.sourceArr.join());console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArr this.sourceArr;this.targetArrAndObj this.sourceArrAndObj;console.log(赋值后targetArr , this.targetArr.join());console.log(赋值后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后sourceArrAndObj, this.sourceArrAndObj);},/*** Object.assign()*/objectAssign: function () {console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());Object.assign(this.targetArr, this.sourceArr);console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);Object.assign(this.targetArrAndObj, this.sourceArrAndObj);console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);},/*** concat方法*/concataAndSlice: function () {console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());this.targetArr this.sourceArr.concat();// this.targetArr this.sourceArr.slice();console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArrAndObj this.sourceArrAndObj.concat();// this.targetArrAndObj this.sourceArrAndObj.slice();console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);},/*** json转换*/json2array: function () {console.log(简单数组对象);console.log(sourceArr , this.sourceArr.join());this.targetArr JSON.parse(JSON.stringify(this.sourceArr));console.log(拷贝后targetArr , this.targetArr.join());console.log(增加目标数组数据[d、e]);this.targetArr.push(d);this.targetArr.push(e);console.log(更新后sourceArr , this.sourceArr.join());console.log(更新后targetArr , this.targetArr.join());console.log(复杂数组对象)console.log(sourceArrAndObj, this.sourceArrAndObj);this.targetArrAndObj JSON.parse(JSON.stringify(this.sourceArrAndObj));console.log(拷贝后targetArrAndObj, this.targetArrAndObj);console.log(增加目标数组数据属性[C、D]修改属性[S、T]);this.targetArrAndObj[0].C 3;this.targetArrAndObj[0].D 4;this.targetArrAndObj[1].S 30;this.targetArrAndObj[1].T 40;console.log(更新后sourceArrAndObj, this.sourceArrAndObj);console.log(更新后targetArrAndObj, this.targetArrAndObj);},test: function () {this.equalSign();// this.objectAssign();// this.concataAndSlice();// this.json2array();}}copy.test();
http://www.dnsts.com.cn/news/155865.html

相关文章:

  • 建设银行的网站是什么情况如何用dreamer做网站
  • 游网站建设方案内容wordpress图片广告
  • 如何跟帖做网站江阴网站开发
  • 小学校园网站建设简介网站集约化平台建设
  • 淘客商品网站怎么做的建设工程网教育网官网
  • 广州网站建设公司推荐网站选择理由描述
  • 深圳58同城网站建设建设门户公司网站
  • 网站建设分为哪几种钢筋网片规格型号
  • ftp网站建设医疗器械外贸网站建设
  • 银川网站建设公司名单深圳seo优化推广
  • 为什么做网站需要服务器网站建设公司取名
  • 丝芙兰网站做的好差网站备案登陆用户名是什么
  • 建设企业网站e路护航官网下载外国做家具的网站
  • 鲜花网站建设的项目介绍烈焰传奇网页版
  • 深圳网站建设工作室一个域名多个网站
  • 计算机学院网站建设小程序开发制作多少钱
  • 为什么小城市做不出来好的网站电子商务主要学什么课程
  • 企业做网站的注意什么做cps需要什么样的网站
  • 皮具网站建设wordpress 当前分类id
  • 教做发绳的网站住建部网站资质查询中宏建设集团
  • 微网站如何做推广大兴网站设计
  • 免费制作动画网站公众号开发教程零基础
  • 怎么在百度建网站扬州立扬计算机培训网站建设怎么样
  • 网站运营成本营销型网站管理方案
  • html5移动端网站开发教程拖拽式网站建设
  • 做网站的内容网站的营销推广方案
  • 营销型网站建设多少钱写出网站开发的基本流程
  • php网站开发文章管理系统wordpress企业免费模板下载
  • 网站开发外文文献网站建设案例效果
  • 超值的扬中网站建设编辑网站教程