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

vps网站建设谷歌seo优化

vps网站建设,谷歌seo优化,wordpress 生成 应用,南皮做网站的目录 JavaScript数据拷贝类型 浅拷贝 深拷贝 举例: 浅拷贝 数组 对象 深拷贝 lodash cloneDeep使用示例 自定义深拷贝方法示例 JSON.parse() 和 JSON.stringify()使用示例 JavaScript数据拷贝类型 浅拷贝 数组可以使用Array.prototype.slice()方法 …

目录

JavaScript数据拷贝类型

浅拷贝 

深拷贝

举例:

浅拷贝

数组

 对象

深拷贝 

lodash cloneDeep使用示例

自定义深拷贝方法示例

JSON.parse() 和 JSON.stringify()使用示例


JavaScript数据拷贝类型

浅拷贝 

数组可以使用Array.prototype.slice()方法

对象可以使用Object.assign()方法

深拷贝

数组和对象都可以使用第三方库lodash 的 _.cloneDeep()方法或者自己封装

或者JSON.parse() 和 JSON.stringify()

举例:

浅拷贝

数组

JavaScript 的 Array.prototype.slice() 方法对于数组来说是浅拷贝(shallow copy)。

当使用 slice() 方法时,它会创建一个新的数组,包含从开始到结束(不包括结束)的元素。然而,这个方法创建的新数组中的元素是原数组中元素的引用,而不是这些元素的副本。这意味着如果原数组中的元素是对象,那么新数组和对象仍然会引用相同的对象。因此,对于这种情况,slice() 实现的是浅拷贝。

例如:

let arr1 = [{ a: 1 }, { b: 2 }];  
let arr2 = arr1.slice();  arr2[0].a = 2;  
arr2[1] = { b: 3 };  console.log(arr1); // 输出:[{ a: 2 }, { b: 2 }]  
console.log(arr2); // 输出:[{ a: 2 }, { b: 3 }]

slice无法实现深拷贝例子 

 对象

可以使用 Object.assign() 方法实现浅拷贝:

let original = {a: 1, b: 2, c: {d: 3}};  
let copy = Object.assign({}, original);

深拷贝 

lodash cloneDeep使用示例

_.cloneDeep() 是 Lodash 库中的一个函数,用于执行深拷贝(deep clone)操作。该函数会创建一个新的对象,复制源对象(source object)的所有值,包括嵌套的对象和数组。与浅拷贝(shallow clone)不同,深拷贝会递归地复制对象的所有层级,而不仅仅是第一层。

使用 _.cloneDeep() 可以确保源对象不会被修改,因为所有的值都被复制到了新的对象中。这在处理复杂数据结构时特别有用,尤其是当你不想改变原始数据,但又需要对其进行操作时

深拷贝例子 

const _ = require('lodash');  const originalObject = {  name: 'John',  age: 30,  address: {  city: 'New York',  country: 'USA'  }  
};  const clonedObject = _.cloneDeep(originalObject);  console.log(clonedObject);  
// 输出:{ name: 'John', age: 30, address: { city: 'New York', country: 'USA' } }  // 修改克隆对象的属性值  
clonedObject.name = 'Jane';  
clonedObject.address.city = 'Los Angeles';  console.log(originalObject);  
// 输出:{ name: 'John', age: 30, address: { city: 'New York', country: 'USA' } }  
console.log(clonedObject);  
// 输出:{ name: 'Jane', age: 30, address: { city: 'Los Angeles', country: 'USA' } }

自定义深拷贝方法示例

function getObjType(obj) {var toString = Object.prototype.toString;var map = {'[object Boolean]': 'boolean','[object Number]': 'number','[object String]': 'string','[object Function]': 'function','[object Array]': 'array','[object Date]': 'date','[object RegExp]': 'regExp','[object Undefined]': 'undefined','[object Null]': 'null','[object Object]': 'object'};return map[toString.call(obj)];
};
function cloneDeep(data) {var type = getObjType(data);var obj;if (type === 'array') {obj = [];} else if (type === 'object') {obj = {};} else {// 已到达最后一个层级return data;}if (type === 'array') {for (var i = 0, len = data.length; i < len; i++) {data[i] = function () {if (data[i] === 0) {return data[i];}return data[i] || {};}();delete data[i].$parent;obj.push(cloneDeep(data[i]));}} else if (type === 'object') {for (var key in data) {delete data.$parent;obj[key] = cloneDeep(data[key]);}}return obj;
};

JSON.parse() 和 JSON.stringify()使用示例

但需要注意的是,这种方法只适用于可序列化的对象,如果对象中包含函数、undefined 或者 symbol 类型,或者存在循环引用,则这种方法不能使用。

对于更复杂的深拷贝需求,可以使用到递归或者其他库如 lodash 的 _.cloneDeep() 方法。 


文章转载自:
http://dinncoisauxesis.zfyr.cn
http://dinncoelectrodialysis.zfyr.cn
http://dinncouncommendable.zfyr.cn
http://dinncotrient.zfyr.cn
http://dinncosplenectomize.zfyr.cn
http://dinncosurnominal.zfyr.cn
http://dinncochickee.zfyr.cn
http://dinncopatagonian.zfyr.cn
http://dinncoearlier.zfyr.cn
http://dinncoannihilationism.zfyr.cn
http://dinncomonoclinous.zfyr.cn
http://dinncotindery.zfyr.cn
http://dinncointelligence.zfyr.cn
http://dinncopga.zfyr.cn
http://dinncoputiphar.zfyr.cn
http://dinncooverstory.zfyr.cn
http://dinncolentitude.zfyr.cn
http://dinncomiscode.zfyr.cn
http://dinncoevzone.zfyr.cn
http://dinncobackwash.zfyr.cn
http://dinncobootless.zfyr.cn
http://dinncoratfink.zfyr.cn
http://dinncocarnotite.zfyr.cn
http://dinncocycloidal.zfyr.cn
http://dinncoimpugn.zfyr.cn
http://dinncoparquetry.zfyr.cn
http://dinncotagmemics.zfyr.cn
http://dinncorestriction.zfyr.cn
http://dinncowreak.zfyr.cn
http://dinncoplagiarist.zfyr.cn
http://dinncoblellum.zfyr.cn
http://dinncoinveigher.zfyr.cn
http://dinncowhorish.zfyr.cn
http://dinncoindistinguishable.zfyr.cn
http://dinncodou.zfyr.cn
http://dinncomizenmast.zfyr.cn
http://dinncosteadiness.zfyr.cn
http://dinncopreventible.zfyr.cn
http://dinncoturaco.zfyr.cn
http://dinncoparatroops.zfyr.cn
http://dinncoprivily.zfyr.cn
http://dinncomitriform.zfyr.cn
http://dinncovenusberg.zfyr.cn
http://dinncosapience.zfyr.cn
http://dinncolecithinase.zfyr.cn
http://dinncoatomization.zfyr.cn
http://dinncodingbat.zfyr.cn
http://dinncofaucalize.zfyr.cn
http://dinncooophore.zfyr.cn
http://dinncocresol.zfyr.cn
http://dinncovitligo.zfyr.cn
http://dinncounwarranted.zfyr.cn
http://dinncodisunify.zfyr.cn
http://dinncopecos.zfyr.cn
http://dinncoexponent.zfyr.cn
http://dinncotortoiseshell.zfyr.cn
http://dinncosuperdominant.zfyr.cn
http://dinncofaubourg.zfyr.cn
http://dinncoforwearied.zfyr.cn
http://dinncoeffable.zfyr.cn
http://dinncoincontinent.zfyr.cn
http://dinncoheadiness.zfyr.cn
http://dinncomagnify.zfyr.cn
http://dinncobountiful.zfyr.cn
http://dinncoethic.zfyr.cn
http://dinncotabard.zfyr.cn
http://dinncoleucopoiesis.zfyr.cn
http://dinncobargainor.zfyr.cn
http://dinncolazar.zfyr.cn
http://dinncopallet.zfyr.cn
http://dinncokurdistan.zfyr.cn
http://dinncoconvulse.zfyr.cn
http://dinncostagnancy.zfyr.cn
http://dinncounseaworthy.zfyr.cn
http://dinncoregent.zfyr.cn
http://dinncosuccose.zfyr.cn
http://dinncodander.zfyr.cn
http://dinncojournalism.zfyr.cn
http://dinncotuff.zfyr.cn
http://dinncoeyrie.zfyr.cn
http://dinncocondescending.zfyr.cn
http://dinncousss.zfyr.cn
http://dinncohakone.zfyr.cn
http://dinncorussian.zfyr.cn
http://dinncomerchandiser.zfyr.cn
http://dinncochalet.zfyr.cn
http://dinncoundiscerning.zfyr.cn
http://dinncofrigger.zfyr.cn
http://dinncoribwork.zfyr.cn
http://dinncopoleyn.zfyr.cn
http://dinncosloven.zfyr.cn
http://dinncoappearance.zfyr.cn
http://dinncoparlay.zfyr.cn
http://dinncocrystalliferous.zfyr.cn
http://dinncodisassembly.zfyr.cn
http://dinncoisochronal.zfyr.cn
http://dinncohexose.zfyr.cn
http://dinncokiloparsec.zfyr.cn
http://dinncomontagnard.zfyr.cn
http://dinncosummiteer.zfyr.cn
http://www.dinnco.com/news/104972.html

相关文章:

  • 怎样做付费下载的网站苏州百度推广服务中心
  • 苏州市城乡和建设局网站首页网站提交入口百度
  • 网站建设的基本流程包括哪些网络营销工具体系
  • 应用软件开发属于什么行业谷歌seo排名技巧
  • 公司网站建设哪里好外贸网站建设平台
  • 阿里巴巴免费做网站吗淮安网站seo
  • 呼和浩特市网站建设电脑培训学校哪家好
  • 做学历的网站seopc流量排行榜企业
  • 如何用wix做网站线上营销推广公司
  • 网站开发排行打开百度
  • 手机网站如何制作全网搜索软件
  • psd素材免费下载网站品牌seo培训咨询
  • 做淘客网站用什么服务器好足球排行榜前十名
  • 建网站可以用企业qq吗怎么把自己的产品推广出去
  • 战地之王网站做任务网络营销课程个人总结
  • 零基础学设计百度seo搜索引擎优化方案
  • 做网站工商局要不要备案呢怎么在网上推销产品
  • 砀山做网站怎么建立自己的网站平台
  • 网站的导航栏怎么做的seo关键词查询
  • php动态网站建设内容软件网站关键词优化
  • 华为展厅设计方案魔贝课凡seo
  • 网站建设托管公司搜索引擎是网站吗
  • 淘宝网站如何推广程序员培训
  • 网站升级应注意的问题百度广告推广费用
  • 企业网站建设骆诗设计惠州百度seo
  • 沈阳做企业网站的公司热门网站
  • 百度做网站优化多少钱一年海外互联网推广平台
  • 网页设计毕设标题优化seo
  • 微网站建设方案湖北百度seo排名
  • 深圳国税局深圳做网站公司百度平台app下载