在分配中无效的Javascript左侧

时间:2017-10-13 23:51:33

标签: javascript

想知道为什么我的左手边配置无效。不是我的for循环遍历字符串字符数组,得到它的数值(ASCII)并将其添加到count并重新分配给变量?

function getCharNumber(string1, string2) {
  let count1 = 0
  let count2 = 0
  let strArray1 = string1.split('')
  let strArray2 = string2.split('')
  for (let i = 0; i < strArray1.length; i++) {
    strArray1[i].charCodeAt(0) += count1
  }
  for (let i = 0; i <strArray2.length; i++) {
    strArray2[i].charCodeAt(0) += count2
  }
  console.log(count1, count2)
}

2 个答案:

答案 0 :(得分:2)

在致电String.prototype.charCodeAt()时撤消订单。将调用结果分配给count1count2

for (let i = 0; i < strArray1.length; i++) {
    count1 += strArray1[i].charCodeAt(0);
}
for (let i = 0; i <strArray2.length; i++) {
    count2 += strArray2[i].charCodeAt(0);
}

答案 1 :(得分:0)

您收到错误,就像其他人所说的那样,因为您正在尝试为数字指定值。

strArray1[i].charCodeAt(0) += count1

在功能上等同于

12 += count1

这不起作用b / c您无法为数字12指定任何内容。相反,你需要直接增加

strArray1[i] =  String.fromCharCode(strArray1[i].charCodeAt(0) + count1)