Javascript 为什么此函数返回“0”'\';1\&x27'&引用;根据codewars?

Javascript 为什么此函数返回“0”'\';1\&x27'&引用;根据codewars?,javascript,Javascript,所以我试图解决这个codewars问题(),但是根据codewars的说法,我的函数没有返回像“1”这样的常规字符串,它显然返回像“\'1\”这样的东西。为什么会这样?我的代码如下: function lastDigit(as){ var product = "1"; for(var i = as.length - 1; i >= 0; i--){ var num = as[i] //console.log(num) //console.log(bigPo

所以我试图解决这个codewars问题(),但是根据codewars的说法,我的函数没有返回像“1”这样的常规字符串,它显然返回像“\'1\”这样的东西。为什么会这样?我的代码如下:

function lastDigit(as){ 
  var product = "1";
  for(var i = as.length - 1; i >= 0; i--){
    var num = as[i]
    //console.log(num)
    //console.log(bigPower(num.toString(), product))
    product = bigPower(as[i].toString(), product);
  }
  var prodArr = product.split("");
  console.log(prodArr[prodArr.length - 1].toString());
  return prodArr[prodArr.length - 1].toString();
}


function bigPower(base, exponent){
  var product = base;
  for(var i = 1; i < parseInt(exponent); i++){
    product = multiply(product.toString(), base.toString());
  }
  return product;
}



function multiply(a, b) {
    const product = Array(a.length+b.length).fill(0);
    for (let i = a.length; i--; null) {
        let carry = 0;
        for (let j = b.length; j--; null) {
            product[1+i+j] += carry + a[i]*b[j];
            carry = Math.floor(product[1+i+j] / 10);
            product[1+i+j] = product[1+i+j] % 10;
        }
        product[i] += carry;
    }
    return product.join("").replace(/^0*(\d)/, "$1");
}
函数lastDigit(as){
var product=“1”;
对于(var i=as.length-1;i>=0;i--){
var num=as[i]
//console.log(num)
//log(bigPower(num.toString(),product))
product=bigPower(as[i].toString(),product);
}
var prodArr=产品分割(“”);
log(prodArr[prodArr.length-1].toString());
返回prodArr[prodArr.length-1].toString();
}
函数bigPower(基数、指数){
var乘积=基数;
对于(var i=1;i
使用
return
语句中的
parseInt
函数解析字符串并作为整数返回

  return parseInt(prodArr[prodArr.length - 1].toString());
函数lastDigit(as){
var product=“1”;
对于(var i=as.length-1;i>=0;i--){
var num=as[i]
product=bigPower(as[i].toString(),product);
}
var prodArr=产品分割(“”);
返回parseInt(prodArr[prodArr.length-1].toString());
}
函数bigPower(基数、指数){
var乘积=基数;
对于(var i=1;iconsole.log(lastDigit([3,4,2])
为什么要将
产品
初始化为字符串
“1”
,而不是数字
1
?哦,我明白了,nvm@MikeBrockington不,这是正确的,这是从正则表达式中提取匹配组的
.replace()
语法。