利用栈来写十进制转换函数

首先声明一个栈类

class Stack {
  constructor (items) {
    this.items = Array.isArray(items) ? items : []
  }
  push(element) {
    this.items.push(element)
  }
  pop() {
    return this.items.pop()
  }
  isEmpty() {
    return this.items.length == 0
  }
  peek () {
    return this.items[this.items.length - 1]
  }
  clear () {
    this.items = []
  }
  size () {
    return this.items.length
   }
  print() {
     console.log(this.items.toString())
  }
}

再写一个通用方法

// 通用十进制转换进制算*
/*
* @decNumber:需要转换的十进制数组 
* @ base:需要转换的进制
*/
function baseConverter(decNumber, base) {
  var remStack = new Stack(),
    rem,
    baseString = '',
    digits = '01234567890ABCDEF';
  while (decNumber > 0) {
    rem = Math.floor(decNumber % base);
    remStack.push(rem);
    decNumber = Math.floor(decNumber / base)
  }
  while (!remStack.isEmpty()) {
    baseString += digits[remStack.pop()];
  }
  return baseString;
}

你可能感兴趣的:(利用栈来写十进制转换函数)