我在 FreeCodeCamp 中为这个任务苦苦挣扎,我不知道哪里错了,为什么结果不是我期望的。请帮助我。提前致谢!
<!DOCTYPE HTML>
<html>
<head>
<script>
function largestOfFour(arr) { //loop every inside array in the outside array.
var data = []; //storing the output array
for (var x = 0; x < arr.length; x++) {
data[x] = largestOfSingle(arr[x]);
}
console.log(data); // the result should be [27,5,39,1000]
}
function largestOfSingle(myArr) { //find the largest element in every inside array.
if (myArr.length == 1)
return myArr[0];
if (myArr[0] >= myArr[1])
return largestOfSingle(myArr.splice(1, 1));
if (myArr[0] < myArr[1])
return largestOfSingle(myArr.slice(1, myArr.length));
}
</script>
</head>
<body onload="largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]);">
<!--two dimensional array-->
</body>
<html>
最佳答案
问题出在这里:
if (myArr[0] >= myArr[1])
return largestOfSingle(myArr.splice(1, 1));
Splice 返回拼接出来的东西,而不是原始数组。可能会:
if (myArr[0] >= myArr[1]){
myArr.splice(1, 1)
return largestOfSingle(myArr);
}
但在我看来,可以通过简单的逻辑来真正简化:
var max = - Infinity;
for(var i = 0; i < myArr.length; i++)
if(myArr[i] > max) max = myArr[i];
return max;
关于javascript - 返回数组中的最大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182902/