【问题标题】:Convert String to ASCII Values将字符串转换为 ASCII 值
【发布时间】:2017-02-21 05:49:12
【问题描述】:

我正在尝试将 S1 和 S2(字符串)中每个元素的 ASCII 值相加,如果它们彼此相等则返回 true。我似乎只能使用以下代码获取每个字符串中第一个元素的 ASCII 值:

function compare(s1, s2) {
  var splitS1 = s1.toUpperCase().split("");
  var splitS2 = s2.toUpperCase().split(""); 
  for (var i = 0; i < splitS1.length; i++) {
    for (var j = 0; j < splitS2.length; j++) {
      var sum1 = 0;
      var sum2 = 0;
      sum1 += splitS1[i].charCodeAt(0);
      sum2 += splitS2[j].charCodeAt(0);
      return sum1 === s2;
    }
  }
}

【问题讨论】:

    标签: javascript ascii


    【解决方案1】:

    return 语句在第一个循环期间结束函数。相反,您应该只在失败时返回。

    function compare(s1, s2) {
      var splitS1 = s1.toUpperCase().split("");
      var splitS2 = s2.toUpperCase().split(""); 
      for (var i = 0; i < splitS1.length; i++) {
        for (var j = 0; j < splitS2.length; j++) {
          if (splitS1[1].charCodeAt(0) === splitS2[j].charCodeAt(0)) {
            return false;
          }
        }
      }
      return true;
    }
    

    【讨论】:

      【解决方案2】:

      问题出在这行代码上:

      return sum1 === s2;
      

      您应该将其与 sum2 进行比较

      return sum1 === sum2;
      

      工作示例:https://repl.it/FrI2

      编辑:

      因为s2 是字符串本身,而sum2 是ASCII 和。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 2013-09-27
        • 2011-02-11
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        相关资源
        最近更新 更多