我的项目模块包含很多练习题,从我挑选并尝试解决的一个问题中,下面是问题。
给定一个数字数组,以产生最大值的方式排列它们。例如,如果 给定的数字是 {54, 546, 548, 60},排列 6054854654 给出最大值。 输入: 第一行包含一个整数N,下一行包含N个以空格分隔的整数。 输出: 打印使用给定数字可以获得的最大数字。 限制条件: 1<=N<=1000 1<=数字<=1000000
HTML:
Enter Number: <input type="text" id="userinput" class="clr"/> <br>
<br>
Largest Value: <input type="text" id="out" class="clr"/> <br> <br>
Javascript:
function myFun() {
let b = document.getElementById("userinput").value;
let c = b.split(" ");
var maxCombine = (a) => +(a((x, y) => +("" + y + x) - +("" + x + y)).join(''));
document.getElementById("out").value = ([
c
].map(a));
};
我在运行脚本时遇到错误声明变量的错误。请大家给点建议。
错误:
Uncaught ReferenceError: a is not defined
at myFun (lagnum.html:26)
at HTMLButtonElement.onclick
最佳答案
在您的代码中,您遗漏了两件事,请检查以下几点。
i)拆分您要组合的值后,但您忘记对值进行排序以找到最大的值 ii)在映射输出时,您调用了错误的变量
请检查以下代码,
function myFun() {
let b = document.getElementById("userinput").value;
let c = b.split(" ");
var maxCombine = (a) => +(a.sort((x, y) => +("" + y + x) - +("" + x + y)).join(''));
document.getElementById("out").value = ([
c
].map(maxCombine));
};
关于javascript - 从给定数组中查找最大数或最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52567893/