javascript - 从用户输入的2个数组中查找最大数字

时间:2017-09-04 11:30:18

标签: javascript multidimensional-array

我试图解决这个问题几个小时,但我不知道我在做什么或不做什么来完成这项工作。任何帮助表示赞赏。我使用以下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);

3 个答案:

答案 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)

您可以在sorttrimsplit功能旁使用map

<强>实施例

&#13;
&#13;
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;
&#13;
&#13;

没有sort功能的另一种解决方案

&#13;
&#13;
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;
&#13;
&#13;

相关问题