序言极尽倾注,深陷其中,界限分明。分享的文章纯属个人观点。如果有不准确的地方或者需要讨论的地方,欢迎大家评论交流,和同学一起学习~欢迎关注“前端进阶”步圈’公众号,一起探索学习前端技术。..公众号回复加群或扫码,即可加入前端交流学习群,长期交流学习...公众号回复如果加了好友,可以加为好友。Array中的无损方法有哪些?非破坏性方法:调用时不会改变原始数组:例如:filter,some,map,find,join,concat,forEach,every,reduce,flat,slice破坏性方法:与破坏性方法相反,例如:sort,reverse,splice,push,pop,shift,unshift新的数组无损方法:toSorted,toReversed,with,toSpliced1。toSorted()用法:constarray=['c','o','n','a','r','d','l','i'];constresult=array.toSorted();控制台日志(结果);//['a','c','d','i','l','n','o','r']console.log(array);//['c','o','n','a','r','d','l','i']实现:/***test*/constarr=[1,5,8,1,5,1,8,1,8,4,31,8,4,48,751,81,1,5,7,1,5,3,5];if(!Array.prototype.toSorted){Array.prototype.toSorted=function(compareFn){returnthis.slice().sort(compareFn);};}letres=arr.toSorted((a,b)=>a-b);console.log(1111,res);//[1,1,1,1,1,1,3,4,4,5,5,5,5,5,7,8,8,8,8,31,48,81,751]//Implementation/***compareFn:排序方法:*示例:*升序:(a,b)=>a-b*降序:(a,b)=>b-a*/if(!Array.prototype.toSorted){Array.prototype.toSorted=function(compareFn){returnthis.slice().sort(compareFn);};}2。toReversed()用法:constarray=['c','o','n','a','r','d','l','i'];constresult=array.toReversed();控制台日志(结果);//['i','l','d','r','a','n','o','c']console.log(array);//['c','o','n','a','r','d','l','i']实际:/***测试*/constarr=[1,5,8,1,5,1,8,1,8,4,31,8,4,48,751,81,1,5,7,1,5,3,5];if(!Array.prototype.toReversed){Array.prototype.toReversed=function(){returnthis.slice().reverse();};}letres=arr.toReversed();console.log(1111,res);//[5,3,5,1,7,5,1,81,751,48,4,8,31,4,8,1,8,1,5,1,8,5,1]//现实如果(!Array.prototype.toReversed){Array.prototype.toReversed=function(){returnthis.slice().reverse();};}3。with()使用方法:array[index]=valueconstarray=['c','o','n','a','r','d','l','i'];constresult=array.with(0,'ConardLi');console.log(结果);//['ConardLi','o','n','a','r','d','l','i'];控制台日志(数组);//['c','o','n','a','r','d','l','i']实现:/***test*/constarr=[1,5,8,1,5,1,8];if(!Array.prototype.with){Array.prototype.with=function(index,value){constcopy=this.slice();复制[索引]=值;返回副本;};}letres=arr.with(4,'xxx');console.log(1111,res);//[1,5,8,1,5,'xxx',1,8,]console.log(2222,arr);//[1,5,8,1,5,1,8,]//实现if(!Array.prototype.with){Array.prototype.with=function(index,value){constcopy=this.切片();复制[索引]=值;返回副本;start开始删除deleteCount个元素;-然后在删除的位置插入项目;-最后返回删除的元素。常量数组=[1,2,3,4,5,6];常量结果=数组。拼接(1、2、0);安慰。日志(结果);//[2,3]控制台。日志(数组);//[1,0,4,5,6]实现:/***测试*/constarr=[1,5,8,1,5,1,8];if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(start,deleteCount,...items){constcopy=this.切片();copy.splice(开始,deleteCount,...items);返回副本;};}让res=arr.toSpliced(1,2,0);//[1,0,1,5,1,8]console.log(1111,res);//实现if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(start,deleteCount,...项目){constcopy=this.slice();copy.splice(开始,deleteCount,...items);返回副本;};}文章特殊字符描述:问号Q:(问题)答案标记R:(结果)注释标准:A:(注意事项)详细描述注释:D:(详细信息)摘要注释:S:(摘要)分析annotation:Ana:(analysis)promptannotation:T:(tips)往期回顾:热门面试题:VirtualDOM相关问题?面试热点问题:什么是粘包/半包问题,如何解决?面试热点:console.log()是异步的?热门面试题:过程系列题?热门面试题:Node.js中的垃圾回收?面试热点问题:http3.0~http1.0有哪些改进?JavaScript中的AMD和CMD规范Vue数据监控Object.definedProperty()方法的实现最后:欢迎来到“前端进阶圈”探索和学习前端技术...公众号回复加群或扫码,可以加入前端交流学习群,长期交流学习...公众号回复加好友,可以加为好友
