Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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中出现率最高的_Javascript_Html_Syntax Error_Mode - Fatal编程技术网

javascript中出现率最高的

javascript中出现率最高的,javascript,html,syntax-error,mode,Javascript,Html,Syntax Error,Mode,您好,我对javascript的了解非常有限,而且非常基础。基本上,下面是我将提示一个弹出窗口,显示该值的答案。这是我在下面找到的编码,如果我必须插入一个数组,比如说1,2,3,2,输出将是,,因为它在数组中的出现率最高。是否有办法编辑此代码,使上面输入的答案为2 我做了我应得的研究: 以下是链接: 代码: <script type="text/javascript"> function evaluate() { var input = prompt("

您好,我对javascript的了解非常有限,而且非常基础。基本上,下面是我将提示一个弹出窗口,显示该值的答案。这是我在下面找到的编码,如果我必须插入一个数组,比如说
1,2,3,2
,输出将是
,因为它在数组中的出现率最高。是否有办法编辑此代码,使上面输入的答案为
2

我做了我应得的研究:

以下是链接:

代码:

<script type="text/javascript">
    function evaluate() {
      var input = prompt("Please enter your input");
      var array = new Array();

     function mode(array)
{
    if(array.length == 0)
        return null;
    var modeMap = {};
    var maxEl = array[0], maxCount = 1;
    for(var i = 0; i < array.length; i++)
    {
        var el = array[i];
        if(modeMap[el] == null)
            modeMap[el] = 1;
        else
            modeMap[el]++;  
        if(modeMap[el] > maxCount)
        {
            maxEl = el;
            maxCount = modeMap[el];
        }
    }
    return maxEl;
}
      document.writeln("Your calculation is: ");
      document.writeln(mode(input) + " with a starting input string of: " + input);

    }
  </script>
      <script type="text/javascript">
    evaluate();
  </script>

函数求值(){
var input=提示(“请输入您的输入”);
var数组=新数组();
功能模式(阵列)
{
如果(array.length==0)
返回null;
var modeMap={};
var maxEl=array[0],maxCount=1;
对于(var i=0;imaxCount)
{
maxEl=el;
maxCount=模式映射[el];
}
}
返回最大值;
}
document.writeln(“您的计算是:”);
document.writeln(模式(输入)+”,起始输入字符串为:“+input”);
}
评估();

首先要将字符串
'1,2,3,2'
转换为数组
[1,2,3,2]
。这可以通过函数来完成。您可能还希望删除每个元素,以防有人用空格格式化它们

函数求值(){
常量输入=提示(“请输入整数数组”)
.split(“,”)
.map(item=>item.trim());
功能模式(项目){
常量计数=项目
.减少((计数,项目)=>{
const currentItemCount=counts.get(item)| 0;
返回计数。设置(项,currentItemCount+1);
},新地图());
const maxEntry=Array.from(counts.entries())
.reduce((maxEntry,entry)=>{
返回条目[1]>maxEntry[1]?条目:maxEntry;
});
返回maxEntry[0];
}
document.writeln(“您的计算是:”);
document.writeln(模式(输入)+”,起始输入字符串为:“+input”);
}

评估()
您的问题源于这样一个事实:您从未将输入(您从
提示符
收到的输入作为字符串)转换为实际数组

当直接对字符串调用
模式
时,逗号作为最常见的字符返回,因为逗号是字符串中最常见的字符

要解决此问题,需要将字符串转换为实际数组,以便对数组的元素而不是字符串的字符进行操作

您可以使用该函数将逗号处的字符串(
“1,2,3,2”
)拆分为数组(
[“1”、“2”、“3”、“2”]
),然后将其传递给模式函数:

mode(input.split(","))

输入函数中可能存在问题,您没有提供。很抱歉,我没有很好地复制它,请让我尽快完成。非常感谢。^非常感谢^^