【问题标题】:Checking equality within an javascript array [duplicate]检查javascript数组中的相等性[重复]
【发布时间】:2018-01-06 13:52:10
【问题描述】:

我被困在这个 CodeWars 问题上,我检查一个字母是否在一个单词中重复,并且我在检查是否相等时遇到了问题。随着循环的迭代,这些字母似乎都严格不相等。

function isIsogram(str){
  var split = str.toLowerCase().split('');
  var result = true;

  for (var i = 0; i < str.length; i++){
    for (var j = i+1; j < str.length; j++){
      if (split[i] !== split[i][j]) {
          console.log(split[i]+ " -> "+ split[j] );
        } 
        else {
           console.log("They are equal");
        }            
      }
    }
 }
isIsogram( "abca" )

【问题讨论】:

  • split[i][j] 应该是什么? split 不是二维数组。
  • 应该是split[j]。顺便说一句,不需要将字符串转换为数组,因为您可以使用 str[i] 访问字符串元素。
  • 仅供参考,您可以使用正则表达式 'abcba'.match(/([\s\S])(?=[\s\S]*?\1)/g); // ["a", "b"] 实现此目的

标签: javascript for-loop


【解决方案1】:

split[i]split[i][j] 进行比较,但将split[j] 记录到控制台。您想将其与split[j] 进行比较吗?

这看起来更直观:

function isIsogram(str){
    var str2 = str.toLowerCase();
    var result = true;

    for (var i = 0; i < str2.length; i++){
        for (var j = i+1; j < str2.length; j++){
            if (str2[i] !== str2[j]) {
                console.log(str2[i]+ " -> "+ str2[j] );
            } 
            else {
                console.log("They are equal");
            }            
        }
    }
}
isIsogram( "abca" )

【讨论】:

  • 欢迎来到 Stack Overflow!这实际上是评论,而不是答案。多一点代表,you will be able to post comments。目前我已经为你添加了评论,我标记了这篇文章以供删除。
猜你喜欢
  • 2018-01-07
  • 2020-05-13
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 2013-08-30
  • 2019-07-27
相关资源
最近更新 更多