javascript中出现率最高的
您好,我对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("
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(","))
输入函数中可能存在问题,您没有提供。很抱歉,我没有很好地复制它,请让我尽快完成。非常感谢。^非常感谢^^