标签:return 进制 items .# js base let 封装
先是栈结构的封装,使用es6的方式。
#items为栈结构 #表示类的私有属性,外部不能直接访问和修改。
push 压栈
pop 出栈
peek 查看栈顶
isEmpty 栈是否为空
size 栈内元素个数
toString 字符串形式返回栈内容
/** * 栈结构的封装 */ class Stack { //私有属性 栈 #items = [] //压栈操作,往栈里面添加元素 push(item) { this.#items.push(item); } //出栈操作,从栈中取出元素,并返回取出的那个元素 pop() { return this.#items.pop(); } //查看栈顶元素 peek() { return this.#items[this.#items.length - 1]; } //判断栈是否为空 isEmpty() { return this.#items.length === 0; } //获取栈中元素个数 size() { return this.#items.length; } //返回以字符串形式的栈内元素数据 toString() { let result = ''; for (let item of this.#items) { result += item + ' '; } return result; } } /** * 10进制转其他进制 */ function baseConverter(decNumber, base) { const remStack = new Stack(); const digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; let number = decNumber; let rem; let baseString = ''; if (!(base >= 2 && base <= 36)) { return ''; } while (number > 0) { rem = Math.floor(number % base);//取余 remStack.push(rem); number = Math.floor(number / base); } while (!remStack.isEmpty()) { baseString += digits[remStack.pop()]; } return baseString; } console.log( baseConverter('555', 2),//转2进制 1000101011 baseConverter('555', 8),//转8进制 1053 baseConverter('555', 16),//转16进制 22B )
标签:return,进制,items,.#,js,base,let,封装 来源: https://www.cnblogs.com/wuhairui/p/16595819.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。