CodeWars符号化問題2021/01/20-Charコード計算


[質問]


Given a string, turn each character into its ASCII character code and join them together to create a number - let's call this number total1:

Then replace any incidence of the number 7 with the number 1, and call this number 'total2':

Then return the difference between the sum of the digits in total1 and total2:

(要約)受信した文字列の各要素をAskyコードに変換し、7を1に変換し、変換前後のすべてのビット数を加算して差を求める.

[回答]

function calc(x){
  let charCodeStr = '';
  let sevenCount = 0;

  for(let i = 0; i < x.length; i++) {
    let charCode = x[i].charCodeAt() + '';
    charCodeStr += charCode;

    if(charCode.includes('7')) {
      for(let j = 0; j < charCode.length; j++) {
        charCode[j] === '7' && sevenCount++;
      }
    }
  }

  return sevenCount * 6;
}
charCodeAt()で各文字列のAskyコードを求めて文字列とし,7があればsevenCountとカウントする.71に変更すると、すべてのビット数に1つの値の差が加わるので、7の個数に6を乗せればよい.