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

网站仿站教程下载app安装

网站仿站教程,下载app安装,快手小程序入口,网站托管 建设方案古语有云#xff1a;“事以密成#xff0c;语以泄败”#xff01; 关于字符串解码#xff1a; 题目#xff1a;题解#xff1a;js代码#xff1a;代码中遇到的方法#xff1a;repeat方法#xff1a;为什么这里不用this.strstack.push(result)#xff1f; 题目#x… 古语有云“事以密成语以泄败” 关于字符串解码 题目题解js代码代码中遇到的方法repeat方法为什么这里不用this.strstack.push(result) 题目 题解 假设输入字符串为 s “3[a2[c]]”解码过程如下 初始化变量‌ numStack一个数组用于存储遇到的数字表示重复次数。 strStack一个数组用于存储待拼接的字符串片段。 num一个变量用于临时存储当前解析到的数字倍数。 result一个字符串用于临时存储当前构建的字符串结果。扫描到 3num 3。扫描到 [将 result “” 推入 strStack将 num 3 推入 numStack然后重置 result “” 和 num 0。扫描到 a追加到 resultresult “a”。扫描到 2num 2。扫描到 [将 result “a” 推入 strStack将 num 2 推入 numStack然后重置 result “” 和 num 0。扫描到 c追加到 resultresult “c”。扫描到 ]从 numStack 弹出 2从 strStack 弹出 “a”构建子串 “ac”.repeat(2) “acc”然后 result “acc”。扫描到 ]从 numStack 弹出 3构建最终字符串 “acc”.repeat(3) “accaccacc”。因此decodeString(“3[a2[c]]”) 的返回值是 “accaccacc”。 也就是有四条分支 分别是 如果是数字 、[ 、 ] 、 字符串的情况。 ‌ 1. 处理数字字符‌如果 char 是一个数字!isNaN(char)则将其转换为数字并累加到 num 上。这里使用了 num num * 10 Number(char); 来处理多位数字。 ‌2. 处理 [ 字符‌如果遇到 [表示一个重复模式的开始。将当前的 result 字符串推入 strStack以便稍后在其后追加重复的字符串。将当前的 num表示重复次数推入 numStack。重置 result 和 num 为空或零为处理新的字符串片段和可能的数字做准备。 ‌3. 处理 ] 字符‌如果遇到 ]表示一个重复模式的结束。从 numStack 弹出重复次数 repeatTimes。从 strStack 弹出之前保存的字符串片段并将其与当前 result 字符串的 repeatTimes 次重复结果拼接起来然后存回 result。 ‌4. 处理普通字符‌如果 char 不是数字、[ 或 ]则将其追加到 result 字符串的末尾。 js代码 /*** param {string} s* return {string}*/ var decodeString function(s) {let numStack [];let strStack [];let num 0;let result ;for(let char of s){if(!isNaN(char)){num num * 10 Number(char); }else if(char [){strStack.push(result);numStack.push(num);num 0;result ;}else if(char ]){let reapTime numStack.pop();result strStack.pop() result.repeat(reapTime);}else{result char;}}return result;};代码中遇到的方法 repeat方法 在JavaScript中repeat方法是String对象的一个内置方法它用于将一个字符串重复指定次数并返回一个新的字符串。这个方法不会改变原始字符串而是创建一个新的字符串作为结果。 举例 let originalString abc; let repeatedString originalString.repeat(3); console.log(repeatedString); // 输出 abcabcabc写法 str.repeat(count)count一个整数表示字符串应该被重复的次数。如果count是0则返回一个空字符串。如果是负数会抛出一个RangeError异常。 返回值 一个包含原始字符串重复count次的新字符串。 注意事项 如果count是一个小数它会被自动转换为整数小数部分会被舍弃。如果count是Infinity或者是一个大于Number.MAX_SAFE_INTEGER即253 - 1的数会抛出RangeError因为JavaScript无法处理这么大的字符串。repeat方法是一个不可变的操作它不会修改原始字符串而是返回一个新的字符串。 举例二 // 使用repeat方法生成一个由10个-组成的字符串分隔符 let dashes -.repeat(10); console.log(dashes); // 输出 ----------// 使用repeat方法和模板字符串生成一个带有边框的文本 let text Hello, world!; let borderedText |${text.repeat(3)}|; console.log(borderedText); // 输出 |Hello, world!Hello, world!Hello, world!|为什么这里不用this.strstack.push(result) this关键字通常用于访问对象的属性或方法。然而decodeString函数代码中并没有使用this来引用任何对象的属性或方法而是直接使用了局部变量strStack。因为strStack是在函数内部定义的作为函数作用域内的一个变量它不需要通过this来访问。 这里有几种情况可能会让你看到this.strStack这样的用法 对象的方法‌如果strStack是某个对象的属性并且正在该对象的方法内部访问它那么会使用this.strStack。但在代码中strStack是一个局部变量不是对象的属性。类的成员变量‌在ES6及更高版本的JavaScript中如果在一个类的方法内部访问类的成员变量即属性也会使用this。但在代码中并没有使用类。闭包或上下文改变‌在某些情况下可能会看到函数内部的this被用来引用外部上下文比如在回调函数或箭头函数中this的值可能会根据它是如何被调用的而改变。但在decodeString函数中并没有这样的上下文改变。
http://www.hkea.cn/news/14319093/

相关文章:

  • 网站建设意义模板网店怎么开怎么运营
  • 宝塔建站wordpress如何快速搭建一个网站
  • 佛山当地网站建设公司长沙建站位找有为太极广大
  • 网站的图文链接怎么做的比价网站开发
  • 呼和浩特市城乡建设保障局网站物流网站的建设论文
  • 网站建设的商品编码简洁白wordpress瀑布
  • 网页游戏网站下载重庆妇科医院排行榜
  • 网址注册了怎么做网站开发网站找什么公司
  • 自己做的网站如何实现下载文件企业网站模板设计
  • 建站申请范文重庆做网站的网络公司
  • 网站备案局网络系统管理与维护形考任务2
  • 门户定制网站建设公司微信小程序开发网站建设
  • mvc网站入口asp东网站建设
  • 东营市垦利区胜坨填建设站的网站全国知名网站建设
  • 个人网站免费模板下载wordpress中文二次元
  • 如何增加新网站的百度收录国家级建设网站
  • 免费成品网站下载商城平台系统
  • 网站在建设是什么意思网络营销优化推广公司
  • 个人可以做网站导航模板网站劣势
  • 网站后台根据前端做吗网站怎么做网站地图
  • 网站死链对网站影响淘宝客高佣金网站建设
  • 深圳做网站的给说沈阳网站建设哪家做得好
  • 智能锁东莞网站建设一个官网
  • 河南网站建设yijuce标智客在线logo设计生成器免费
  • 网页设计与网站建设的课后习题答案网站分析的数据来源有哪些
  • 玉树市wap网站建设公司凡诺企业网站管理系统
  • 响应式网站的建设东营优化路网
  • 北京手机网站广告招商
  • 励志网站织梦源码东莞清溪网站制作
  • 俄文网站商城建设加强网站信息内容建设管理