创建一个名为isIsogram的函数,它接受一个参数,一个单词来测试它是否是等值线图。此函数应返回一个布尔值,指示它是否是Javascript中的isogram(true)或不是(false)。这是我的代码:
function isIsogram(word){
if (word !== 'string'){
return 'Argument should be a string';
}
if (word === ' '){
return false;
}
else{
var str = word.toLowerCase();
for(var i=0; i<str.length;i++){
if (charAt[i]>1){
return false;
}
else{
return true;
}
}
}
}
console.log(isIsogram('Dermatoglyphics'));
然而,代码为Dermatoglyphics返回'Argument,而不是字符串',它不应该
答案 0 :(得分:0)
工作正常
你遇到的问题
你将辩论Dermatoglyphics
传递给string
这就是为什么如果条件为真并给出消息Argument should be a string
并返回
function isIsogram(word) {
if (word !== 'string') {
return 'Argument should be a string';
}
if (word === ' ') {
return false;
} else {
var str = word.toLowerCase();
for (var i = 0; i < str.length; i++) {
if (charAt[i] > 1) {
return false;
} else {
return true;
}
}
}
}
console.log(isIsogram('Dermatoglyphics'));
&#13;
答案 1 :(得分:0)
假设您需要检查一个字母是否只出现在时间上,那么您可以使用一个对象并为每个找到的字母取一个标记。通过检查letter
对象,如果找到重复的字母,则函数exit为false。
function isIsogram(word) {
var str = word.toLowerCase(),
letter = Object.create(null),
i;
if (typeof word !== 'string') {
return 'Argument should be a string';
}
if (word === ' ') {
return false;
}
for (i = 0; i < str.length; i++) {
if (letter[str[i]]) {
return false;
}
letter[str[i]] = true;
}
return true;
}
console.log(isIsogram('Dermatoglyphics'));