2016-09-09 5 views
2

У меня есть эта функция, которая возвращает все элементы моей сетки, но на колонке:Возвращает массив для каждого столбца из сетки

var cols = function(){ 
    var c = $('.row'); 
    for (var i = 0; i < c.length; i++) { 
     for (var j = 0; j < c.length; j++){ 
     var x = c[j].children[i]; 
     console.log(x); 
     //if(x != 0){return c;} 
     } 
    } 
    } 
    cols(); 

Это означает, что эта функция будет принимать каждый элемент из моей сетки и будет цикл из верхней до дна, после чего будет второй столбец и так далее.

Я хочу вернуть массив для каждого столбца, у меня также есть несколько классов в первой строке, называемой header, и другие этики будут состоять из заголовков классов n элементов и возвращать массив, но я не знаю, как это сделать : |

fiddle:

ответ

5

Просто нажмите все объекты из внутренного цикла в массив, который создается во внешнем для цикла:

var cols = function(){ 
    var c = $('.row'); 
    for (var i = 0; i < c.length; i++) { 
     var tmp_array = []; 
     for (var j = 0; j < c.length; j++){ 
     var x = c[j].children[i]; 
     tmp_array.push(x); 
     //x.css({'background': 'rgba(255, 255, 255, 0.3)'}); 
     //if(x != 0){return c;} 
     } 
     console.log(tmp_array); 
    } 
} 

Обновлено скрипка: https://jsfiddle.net/c310st3o/4/

+0

спасибо, и если я хочу перебирать эти массивы? скажем, мне нужно, чтобы числовые значения были уникальными для каждого массива, должен ли я создать функцию forEach для этого? – RulerNature

+0

Да, конечно, вы можете это сделать. Но вы также могли бы сделать это уже во внутреннем цикле for, так как он уже пересекает столбец, нет? – Danmoreng

+0

дайте мне несколько советов, как это сделать во внутреннем цикле, пожалуйста :) – RulerNature

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