我试图解决这个问题几个小时,但我不知道我在做什么或不做什么来完成这项工作。任何帮助表示赞赏。我使用以下html从用户获得2个数字列表:
for(unsigned int i = 0; i < squares.size(); i++){
delete(squares.at(i));
}
然后我在外部js文件中调用该函数(事件处理程序工作,函数调用传递2个数字列表):
<input type = "text" id = "firstArray"><br/>
<input type = "text" id = "secondArray"><br>
然后在我的js函数中,我将2个数字列表附加到数组中,使其成为数组中的2个数组。我想找到每个数组的最大数量,并将这2个数字发送到一个数组(largeList)并将输出发送到console.log。下面是js函数:
Answer = largestNumbers(document.getElementById("firstArray").value,
document.getElementById("secondArray").value);
答案 0 :(得分:1)
您可以使用Math.max.apply
获取数组中的最大值。
function getResult(){
var Answer = largestNumbers(document.getElementById("firstArray").value,
document.getElementById("secondArray").value);
console.log(Answer);
function largestNumbers(arr, arr1) {
var largeList = [];
var otherArray = [];
otherArray[0] = arr.split(" ").map(x=>{return parseInt(x)});
otherArray[1] = arr1.split(" ").map(x=>{return parseInt(x)});
debugger
largeList.push(Math.max.apply(null, otherArray[0]));
largeList.push(Math.max.apply(null, otherArray[1]));
return largeList;
}
}
<input type = "text" id = "firstArray"><br/>
<input type = "text" id = "secondArray"><br>
<button id='result' onclick='getResult()'>Get Largest</button>
请注意,在split(' ')
期间,数组元素已转换为整数,这将创建整数数组。
答案 1 :(得分:0)
您可以使用/**
* @Inject("Configuration")
*/
private $config;
Math.max
答案 2 :(得分:0)
您可以在sort
,trim
,split
功能旁使用map
。
<强>实施例强>
function getLargeFromInput(input) {
return input
.value // get input value
.trim() // remove spaces from edges
.split(" ") // convert to array
.map(Number) // convert array items to be numbers
.sort((x, y) => y - x) // sort DESC
[0] // get the largest value
}
function getLargest() {
var val1 = getLargeFromInput(document.querySelector('#inpt1'))
var val2 = getLargeFromInput(document.querySelector('#inpt2'))
var largeList= [val1, val2]
alert(largeList);
}
&#13;
<input id="inpt1" value="1 5 3 -9 44 6"><br>
<input id="inpt2" value="7 23 1 77 33 1">
<br><br>
<input type="button" value="Get largest" onclick="getLargest()">
&#13;
没有sort
功能的另一种解决方案
function largestNumbers(val1, val2) {
var arr1 = val1.split(" ").map(Number),
arr2 = val2.split(" ").map(Number),
largeList = [];
for (var i = 0; i < arr1 .length; i+=1)
largeList[0] = largeList[0] < allNumbers[i]? allNumbers[i] : largeList[0]
for (var j = 0; i < arr2 .length; j+=1)
largeList[1] = largeList[1] < allNumbers[j]? allNumbers[1] : largeList[1]
return largeList;
}
function run () {
var largeList= largestNumbers(
document.querySelector('#inpt1').value,
document.querySelector('#inpt2').value
);
alert(largeList);
}
&#13;
<input id="inpt1" value="1 5 3 -9 44 6">
<br>
<input id="inpt2" value="7 23 1 77 33 1">
<br><br>
<input type="button" value="Get largest" onclick="run()">
&#13;