Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.07.2017, 02:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от j0hnik
а вы как бы сделали?
не знаю, но для квадратных похоже ничего менять не надо.
Ответить с цитированием
  #12 (permalink)  
Старый 26.07.2017, 03:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
не знаю, но для квадратных похоже ничего менять не надо.
Хорошее замечание, а для прямоугольных точно надо подумать, не все так просто.
Ответить с цитированием
  #13 (permalink)  
Старый 26.07.2017, 08:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

j0hnik,
танцы с бубном, но работает ...
<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8">
<title>title</title>
</head>
<body>
<table>
  <tr><td>1<td>2<td>3
  <tr><td>4<td>5<td>6
  <tr><td>7<td>8<td>9
</table>
___________________________________

<table>
  <tr><td>1<td>2<td>3
  <tr><td>4<td>5<td>6
</table>
___________________________________

<table>
  <tr><td>1<td>2
  <tr><td>3<td>4
  <tr><td>5<td>6
  <tr><td>7<td>8
</table>
<button>Клик</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var n = 1;
$('button').click(function(){
  n ^= 1;
  $("table").each(function(){
      var trs = $(this).find("tr");
      var tds = $(this).find("td");
      var t = trs.length;
      var l = n ? tds.length/t : 1;
    for (var k=0; k<l; k++)  {
    tds.each(function(i){
       i =  i % t;
       trs.eq(i%t).append(this);
    });
    tds = $(this).find("td");
    }

  });

});
</script>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 26.07.2017, 09:28
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

https://ru.wikipedia.org/wiki/Транспонированная_матрица
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #15 (permalink)  
Старый 26.07.2017, 12:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

nerv_,
немного не походит, меня интересует вариант с сохранением количества строк и колонок. есть ли какая то функция, сделать тоже самое что в посте №13, но без for.
Ответить с цитированием
  #16 (permalink)  
Старый 26.07.2017, 12:56
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

извините за вторжение
есть вопрос по коду
<script>
document.querySelectorAll("table").forEach(table=>{
var trs = table.querySelectorAll("tr");
var tds = table.querySelectorAll("td");
var t = trs.length;
tds.forEach((td,i) => trs[i%t].append(td));
})

а именно по вот этой строчке: tds.forEach((td,i) => trs[i%t].append(td))
мы перебираем все ТДшки и далее возвращаем в ТРшки новые ТДшки,
допустим в примере у нас
<table>
  <tr>
      <td>1</td>
      <td>2</td>
  </tr>
  <tr>
      <td>3</td>
      <td>4</td>
  </tr>
  <tr>
      <td>5</td>
      <td>6</td>
  </tr>
  <tr>
      <td>7</td>
      <td>8</td>
  </tr>
  <tr>
      <td>9</td>
      <td>10</td>
  </tr>
</table>

5 строк и 2 столбца, итого 10 элементов.
td = 10, i = 5 ?
как это происходит ?
tds((1,1) => trs[1%1].append(td)) - для первой ТДшки
tds((7,4) => trs[7%4].append(td)) - для седьмой ТДшки
tds((8,4) => trs[8%4].append(td)) - для восьмой ТДшки

Первую брать смысла нету, возьму седьмую,
tds((7,4) => trs[7%4].append(td))
trs[7%4] - остаток есть - три, и типа в третью строчку вставляется седьмая ТДшка ? что-то не сходится у меня

Для восьмой:
tds((8,4) => trs[8%4].append(td))
trs[8%4] - остатка нет ....
Ответить с цитированием
  #17 (permalink)  
Старый 26.07.2017, 13:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

shoopik,
для первой ТДшки trs[0%5] = tr[0]
для седьмой ТДшки trs[6%5] = tr[1]
для восьмой ТДшки trs[7%5] = tr[2]
<table>
  <tr>
      <td>1</td>
      <td>2</td>
  </tr>
  <tr>
      <td>3</td>
      <td>4</td>
  </tr>
  <tr>
      <td>5</td>
      <td>6</td>
  </tr>
  <tr>
      <td>7</td>
      <td>8</td>
  </tr>
  <tr>
      <td>9</td>
      <td>10</td>
  </tr>
</table>
<table>
  <tbody><tr>


  <td>1</td><td>6</td></tr>
  <tr>


  <td>2</td><td>7</td></tr>
  <tr>


  <td>3</td><td>8</td></tr>
  <tr>


  <td>4</td><td>9</td></tr>
  <tr>


  <td>5</td><td>10</td></tr>
</tbody></table>
Ответить с цитированием
  #18 (permalink)  
Старый 26.07.2017, 13:29
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от рони Посмотреть сообщение
shoopik,
для первой ТДшки trs[0%5] = tr[0]
для седьмой ТДшки trs[6%5] = tr[1]
для восьмой ТДшки trs[7%5] = tr[2]
для первой ТДшки trs[0%5] = tr[0]
для второй trs[1%5] = tr[0] - непонято, что здесь
для третьей trs[2%5] = tr[0] - непонято, что здесь
для четвертой trs[3%5] = tr[0] - непонято, что здесь
для пятой trs[4%5] = tr[0] - непонято, что здесь
для шестой trs[5%5] = tr[0] - непонято, что здесь

для седьмой ТДшки trs[6%5] = tr[1] - т.е. она просто вставляется во второй столбик, потому что первый занят уже, если я правильно понял, также и в восьмой.
для восьмой ТДшки trs[7%5] = tr[2]
Ответить с цитированием
  #19 (permalink)  
Старый 26.07.2017, 13:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

shoopik,
условно tr[0] строка с индексом ноль или первая строка
tr[1] строка с индексом один или вторая строка
Ответить с цитированием
  #20 (permalink)  
Старый 26.07.2017, 13:45
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от рони Посмотреть сообщение
shoopik,
условно tr[0] строка с индексом ноль или первая строка
tr[1] строка с индексом один или вторая строка
Да, это понятно, но как здесь получается ? Там же везде остаток ноль, и они должны тогда все в первую строку полезть вот так я себе представляю это:
1 2 3 4 5
6
7
8
9
10
для второй trs[1%5] = tr[0] -
для третьей trs[2%5] = tr[0] -
для четвертой trs[3%5] = tr[0] -
для пятой trs[4%5] = tr[0] -
для шестой trs[5%5] = tr[0] -
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку на jQuery. Готов заплатить. shevgeny Javascript под браузер 1 05.05.2014 12:07
Помогите решить задачку. Андрей_ Javascript под браузер 3 26.06.2012 16:21
Помогите решить задачку (Простую но непонятную) Suharik Элементы интерфейса 15 01.06.2010 22:30
Помогите решить задачку valero Элементы интерфейса 10 07.03.2010 16:41
помогите решить задачку с while natalia120390 Общие вопросы Javascript 46 16.06.2009 17:32