You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求用Javascript实现字符串转ASCII码并迭代求和至单个数字的方案

JavaScript实现字符串转ASCII求和后得到单个数字

核心功能实现

我们可以分两步完成需求:先计算字符串所有字符的ASCII码总和,再将总和逐步拆解相加直到得到单个数字(也就是数学中的数字根)。

方式一:循环累加(直观易懂)

这种方式通过循环逐步处理,适合理解逻辑:

function getSingleDigitFromStr(str) {
  // 计算ASCII码总和
  let asciiSum = 0;
  for (let char of str) {
    asciiSum += char.charCodeAt(0);
  }

  // 逐步将各位数字相加到单个数字
  let result = asciiSum;
  while (result >= 10) {
    let temp = 0;
    // 拆分当前数字的每一位累加
    while (result > 0) {
      temp += result % 10;
      result = Math.floor(result / 10);
    }
    result = temp;
  }

  return result;
}

// 测试示例
console.log(getSingleDigitFromStr("Youssef")); // 输出:8

方式二:利用数字根数学公式(高效简洁)

数字根有现成的数学规律:

  • 若总和为0,结果是0
  • 若总和是9的倍数,结果是9
  • 否则结果为总和对9取余

用这个公式可以省去嵌套循环,效率更高:

function getSingleDigitFromStr(str) {
  let asciiSum = 0;
  for (let char of str) {
    asciiSum += char.charCodeAt(0);
  }

  if (asciiSum === 0) return 0;
  return asciiSum % 9 === 0 ? 9 : asciiSum % 9;
}

// 测试示例
console.log(getSingleDigitFromStr("Youssef")); // 输出:8

验证示例

以字符串"Youssef"为例:

  1. 计算ASCII总和:89 + 111 + 117 + 115 + 115 + 101 + 102 = 782
  2. 用公式计算:782 % 9 = 8,和手动计算结果一致

内容的提问来源于stack exchange,提问作者youssef ACHCHIRAJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 04:06:18