【发布时间】:2015-08-11 11:32:47
【问题描述】:
我正在尝试解决 Codewars 上的 Javascript 挑战。
等值线是一个没有重复字母的单词,连续的或不连续的。实现一个函数,该函数确定仅包含字母的字符串是否为等值线。假设空字符串是等值线。忽略字母大小写。
isIsogram( "Dermatoglyphics" ) == true
isIsogram( "aba" ) == false
isIsogram( "moOse" ) == false // -- ignore letter case
我的努力如下:
function isIsogram(str) {
var arr = str.split("");
var seen = {};
var out = [];
var length = arr.length;
var j = 0;
for(var i = 0; i < length; i++) {
var item = arr[i].toLowerCase;
if(seen[item] !== 1) {
seen[item] = 1;
out[j++] = item;
}
}
console.log(out.toString.toLowerCase);
console.log(str.toLowerCase);
if (out.toString.toLowercase === str.toLowerCase) {
return true;
}
else {
return false;
}
}
在代码战中我的结果
console.log(out.toString.toLowerCase); is undefined
和
的结果console.log(str.toLowerCase); is [Function: toLowerCase].
这意味着我的解决方案总是评估为假。
如果能帮助我指出正确的方向或突出我的错误,而不是为我提供解决方案,我将不胜感激,这样我就可以更有效地学习。谢谢!
【问题讨论】:
标签: javascript arrays string