2013-07-30 2 views
0

У меня есть сетка выбираемых div на моей странице с атрибутами, определяющими строки и столбцы. Когда я выбираю некоторые из них, создается трехмерная таблица - позволяет называть ее таблицей Копировать.Заполните таблицу содержимым другой таблицы с помощью javascript

Когда я выбираю некоторые другие элементы снова создается другая трехмерная таблица - таблица Paste

После выбора двух столбцов и две строки в первый раз, он будет

x,y - positions 
    at1,at2,at2 - attributes for later copy 

          Table Copy 
          1    2 
       0:[x,y,at1,at2,at3],[x,y,at1,at2,at3] 
       1:[x,y,at1,at2,at3],[x,y,at1,at2,at3] 

И после выбора трех столбцов с тремя рядами он будет выглядеть следующим образом

       Table Copy 
          1    2 
       0:[x,y,at1,at2,at3],[x,y,at1,at2,at3] 
       1:[x,y,at1,at2,at3],[x,y,at1,at2,at3] 

          Table Paste 
        1    2     3    
     0:[x,y,at1,at2,at3],[x,y,at1,at2,at3],[x,y,at1,at2,at3] 
     1:[x,y,at1,at2,at3],[x,y,at1,at2,at3],[x,y,at1,at2,at3] 
     2:[x,y,at1,at2,at3],[x,y,at1,at2,at3],[x,y,at1,at2,at3] 

А теперь мне нужна функция, которая просто заполняет таблицу пасту с содержанием из таблицы копы y

       Table Paste 
        1    2     3    
      0:[tabCopy[0][1]],[tabCopy[0][2]],[tabCopy[0][1]] 
      1:[tabCopy[1][1]],[tabCopy[1][1]],[tabCopy[1][1]] 
      2:[tabCopy[0][1]],[tabCopy[0][2]],[tabCopy[0][1]] 

Конечно, есть много возможностей размера обоих массивов.

Столбец может иметь 4 строки и только таблицу. 3. Затем четвертую строку таблицы Копировать следует игнорировать.

если таблица Копирование только 1 строка 1 столбца, все записи в таблице пасты должна выглядеть эта же тогда

Если таблица паста только одна строка 1 колонка, она должна взять только первую запись из таблицы Copy.

Я надеюсь, что я описал все ясно :)

Спасибо за помощь

ответ

0

Ну, давайте посмотрим, если я вас понял ...

function copyArrays(from, to) { 
    for (var i = 0, j = 0; i < to.length; 
     i++, j = (j + 1) % from.length) { 
     if ((from[j] instanceof Array) && 
      (to[i] instanceof Array)) { 
      copyArrays(from[j], to[i]); 
     } else { 
      to[i] = from[j]; 
     } 
    } 
} 

var from = [["x", "y", "at1", "at2", "at3"], 
      ["x", "y", "at1", "at2", "at3"], 
      ["x", "y", "at1", "at2", "at3"], 
      ["x", "y", "at1", "at2", "at3"]]; 

var to = [["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"], 
      ["+", "-", "123", "456", "789"]]; 

Тогда:

copyArrays(from, to); 

даст вам:

[["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"], 
["x", "y", "at1", "at2", "at3"]] 
Смежные вопросы