对于我的生活,我无法理解为什么这不起作用。 我试图找到数组中最大的数字。 Plz解释我在这里做错了什么。
function largestOfFour(arr) {
var maxArry = [];
for (let i = 0; i < arr.length; i++) {
var Max = 0;
for (let y = 0; y < arr.length; y++) {
var currentElement = arr[i][y];
if (currentElement >= Max) {
Max = currentElement;
}
}
console.log(Max);
}
}
largestOfFour([
[4, 5, 6, 7, 9],
[9, 4, 5, 64, 3],
[4, 4, 6, 8, 35],
[3, 5, 76, 54, 3]
]);
答案 0 :(得分:0)
试试这个:
function largestOfFour(arr) {
var largestNr = 0;
arr.map(child => {
var largestChild = Math.max(...child)
if (largestChild > largestNr) largestNr = largestChild
})
return largestNr;
}
或者如果您关心Spread opearator的IE浏览器支持,请使用:
var largestChild = Math.max.apply(null, child)
现在,Array.Map()更可靠,因为它更容易使用,更不容易出错:)
您可以在此处阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
答案 1 :(得分:0)
尝试使用排序数组:
var Arr = [1, 7, 2, 8, 3, 4, 5, 0, 9];
for (var i = 1; i < Arr.length; i++)
for (var j = 0; j < i; j++)
if (Arr[i] > Arr[j]) {
var x = Arr[i];
Arr[i] = Arr[j];
Arr[j] = x;
}
console.log(Arr);
然后在数组中获得四个第一项。
答案 2 :(得分:0)
Max
的变量赋值需要超出for
循环,因为每次完成内循环时,Max
将在迭代外循环时重置为0。 / p>