Javascript 除了console.log之外,函数根本不返回任何内容
我试图在js中运行这个函数,这个函数应该检查字符串是否有重复的字母,如果有则返回false,如果没有则返回true,但它不返回任何内容。我试图比较两个字符串,并在此基础上返回true或falseJavascript 除了console.log之外,函数根本不返回任何内容,javascript,Javascript,我试图在js中运行这个函数,这个函数应该检查字符串是否有重复的字母,如果有则返回false,如果没有则返回true,但它不返回任何内容。我试图比较两个字符串,并在此基础上返回true或false 函数isIsogram(str){ 设str1=str.toLowerCase().split(“”); //console.log(str.toLowerCase()) 设str2=[] for(设i=0;i
函数isIsogram(str){
设str1=str.toLowerCase().split(“”);
//console.log(str.toLowerCase())
设str2=[]
for(设i=0;i console.log(isIsogram(“abba”))
您可以尝试使用以下命令:
function hasRepeatedChar(text){
return text.split("").some(
function(v,i,a){
return a.lastIndexOf(v)!=i
}
);
}
这个答案很好地解释了这一点:
我认为您可以像这样优化算法:
函数isIsogram(str){
设foundChars=[];
for(设i=0;i 控制台日志(isIsogram(“abba”)代码>不能简单地比较两个数组。但您可以先将它们连接到字符串中,然后进行比较
函数isIsogram(str){
设str1=str.toLowerCase().split(“”);
设str2=[]
for(设i=0;i log(isIsogram(“abba”)
您试图使用str2===str1
比较两个数组中的字符。不幸的是,严格的相等运算符,==
,用于比较字符串或数字等基本类型,而不是数组
在您的代码中,最快的解决方案是使用join方法将str1
和str2
转换为字符串,然后像str2.join(“”)==str1.join(“”)这样比较它们
阅读更多关于javascript中的平等性检查和连接方法的信息
附言——这不是最好的/最佳的方法,但从一开始就足够简单。我认为这是可行的:
函数isIsogram(str){
设str1=str.toLowerCase().split(“”);
设str2=[];
for(设i=0;i 控制台日志(isIsogram(“abba”)代码>无法比较那样的数组。str2初始化为数组,str1初始化为字符串。不能比较数组和字符串。将str2更改为String。我为您制作了一个代码段。当您从函数返回值时,您必须以某种方式使用它。例如,var result=isIsogram(“abba”)非常感谢你们,伙计们!我不熟悉编码,我开始使用Html、css和js。让我试试。哇,完成了这么小的一行。你能解释一下为什么函数一开始没有返回任何东西吗?