【发布时间】: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