2015-04-30 3 views
4
function largestOfFour(arr) { 

    for(var i = 0; i < arr.length; i++) { 
     var largest = Math.max.apply(Math, arr[i]); 
     return largest; 
    } 
} 

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); 

Мне нужно вернуть наибольшее число из каждого числа. Когда я запускаю свой код с помощью console.log, он печатает наибольшее количество каждого массива, но когда я его возвращаю, возвращается только наибольшее число из массива 0. Кто-нибудь может мне с этим помочь?возвращение наибольшее количество в массивах

ответ

5

return выходит из функции, вам необходимо создать массив и добавить к нему наибольшие значения.

function largestOfFour(arr) { 
 
    var result = []; 
 
    for (var i = 0; i < arr.length; i++) { 
 
    result.push(Math.max.apply(Math, arr[i])); 
 
    } 
 
    return result; 
 
} 
 

 
document.body.innerHTML = largestOfFour([ 
 
    [4, 5, 1, 3], 
 
    [13, 27, 18, 26], 
 
    [32, 35, 37, 39], 
 
    [1000, 1001, 857, 1] 
 
]);

+0

Большое вам спасибо, что сработало! – jyoon006

1

Вы также можете использовать map вместо for

function largestOfFour(arrs) { 
 
    return arrs.map(function(arr){ 
 
    return Math.max.apply(null, arr); 
 
    }); 
 
} 
 

 
document.body.innerHTML = largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

0

Другой способ заключается в использовании Array.prototype.reduce()

function largestOfFour(arr) { 
    return arr.reduce(function(p, c, index, arr){ 
     p.push(Math.max.apply(null, c)); 
     return p; 
    }, []); 
} 
Смежные вопросы