Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除了console.log之外,函数根本不返回任何内容_Javascript - Fatal编程技术网

Javascript 除了console.log之外,函数根本不返回任何内容

Javascript 除了console.log之外,函数根本不返回任何内容,javascript,Javascript,我试图在js中运行这个函数,这个函数应该检查字符串是否有重复的字母,如果有则返回false,如果没有则返回true,但它不返回任何内容。我试图比较两个字符串,并在此基础上返回true或false 函数isIsogram(str){ 设str1=str.toLowerCase().split(“”); //console.log(str.toLowerCase()) 设str2=[] for(设i=0;i

我试图在js中运行这个函数,这个函数应该检查字符串是否有重复的字母,如果有则返回false,如果没有则返回true,但它不返回任何内容。我试图比较两个字符串,并在此基础上返回true或false

函数isIsogram(str){
设str1=str.toLowerCase().split(“”);
//console.log(str.toLowerCase())
设str2=[]
for(设i=0;iconsole.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;ilog(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”)