2016-01-07 7 views
1

Я только начинаю изучать javascript, и я создаю эту простую программу, которая принимает наибольшие числа из массива и помещает их в новый массив, который будет возвращен в конце.Простая javascript-программа

Функция называется largestOf(), и, например,

largestOf([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) should return [27,5,39,1001]. 

То, что я до сих пор это, и я не знаю, как это исправить, или если у него есть что-то делать с как я использую скобки.

function largestOf(arr) { 
    var nArr = []; 
    for (var i = 0; i < arr.length; i++) { 
     n = arr[i].length; 
     max = 0; 
     for(var j = 0; j < n; j ++) { 
      if (arr[i][j] > max) { 
       max = arr[i][j]; 
       nArr.push(max); 
      } 
     } 
    } 

    return nArr; 
} 

То, что я пытаюсь сделать здесь, довольно просто. Я просматриваю каждый блок в массиве, выбираю max и помещаю его в свой массив (nArr) с другим макс.

Я хочу знать, как исправить то, что у меня есть, но все еще делаю это по-своему.

Спасибо

+1

Пожалуйста, покажите нам, что вы хотите в результате и то, что текущая проблема. – js1568

+0

Вам просто нужно переместить вызов '.push()' на внешний * внутренний цикл 'for'. – Pointy

+0

Я бы начал с размещения nArr.push (max) после цикла for. –

ответ

3
function largestOf(arr) { 
    var nArr = []; 
    for (var i = 0; i < arr.length; i++) { 
     var n = arr[i].length; 
     var max = 0; 
     for (var j = 0; j < n; j++) { 
      if (arr[i][j] > max) { 
       max = arr[i][j]; 
      } 
     } 
     nArr.push(max); // push your max outside of the inner loop 
    } 
    return nArr; 
} 
+0

Большое спасибо! – haxtar

+0

Добро пожаловать :-) – madox2

Смежные вопросы