Цитата:
|
laimas,
не очень понимаю как очень просто брать эти срезы вариант решения
function matrix(c, d) {
for (var g = [], a = 0; a < d * d; a += c) {
for (var f = [], e = [], b = 0; b < c; b++) e.push(a + b + 1);
f.push(e);
for (b = 0; b < c - 1; b++) e = e.map(function(a) {
return a + d
}), f.push(e);
g.push(f);
!a || (a + c) % d || (a += d * (c - 1))
}
return g
};
alert(JSON.stringify(matrix(2,4)))// матрицу 4 на 4 разбить 2 на 2
alert(JSON.stringify(matrix(3,9)))//этоn же вариант и для матрицы 9 на 9 на 3 на 3 ... matrix(3,9)
|
var a = [
['01', '02', '03', '04'],
['05', '06', '07', '08'],
['09', '10', '11', '12'],
['13', '14', '15', '16']
], b = [], i, s = 2;
for(i=0; i<a.length/2; i++) {
b.push(a[i].slice(0, s), a[i+1].slice(0, s));
b.push(a[i].slice(s), a[i+1].slice(s))
}
console.log(b)
Ну естественно, если входной массив с произвольной длиной вложений и срезов которые нужно взять, то вычисляем эти условия. |
Кстати, рони, а то так и забуду. Интересная вещь совсем недавно приключилась с этим: $('selector')[0].
У заказчика несколько машин, одни работают под XP SP3, есть и семерки и одна под win 8.1. Возникла проблема - на одной из машин работающей под XP SP3 не загружаются файлы MS Office. Перед загрузкой клиент проверяет файл на разрешенный к загрузке тип (чисто сервис, дабы файлы). В реальности вывод ошибок сервера заблокирован и разрешен только в режиме отладки. JS-сценарий сжат. Спрашиваю, что в этом случае выдает браузер? Ответ - Ошибка. Зная что такого сообщения нет в коде, уточняю, что за ошибка. Ответ - Не разрешенный для загрузки тип файла. Это ближе к телу. И это только на одной машине происходит. Гадания и предположения, да еще на большие расстояния пользы не принесли, поэтому отдаю ему неупакованный JS со вставленными в предполагаемых проблемных местах вставках простых, чтобы он мне мог сообщать их, а я знал по ним узкое место. Вот тут и началось самое смешное - теперь браузер (любой) точно выдавал ошибку на строку в который и было получение DOM - $('selector')[0], не завершенный литерал, и хоть умри. А вот $('selector').get(0) без проблем. Но тогда почему это работает в сжатом JS!? :) После удалось узнать, что причиной является то, что JS на этой машине типы файлов MS Office получить не может, то есть files[n].type есть пустая строка. И именно только такие файлы, с остальными любыми проблем нет. Почему, так и не удалось выяснить, не имея машины под рукою "лечить" на расстоянии могут только кашпировские и т.п. :) |
laimas,
может проверку добавить if($('selector').length) ... и да замечал разницу с использованием min.js, до причины не дошёл ... просто ставил несжатую версию |
laimas,
вот что выдал лог [["01", "02"], ["05", "06"], ["03", "04"], ["07", "08"], ["05", "06"], ["09", "10"], ["07", "08"], ["11", "12"]] вроде нужно так: [[[1, 2], [5, 6]], [[3, 4], [7, 8]], [[9, 10], [13, 14]], [[11, 12], [15, 16]]] |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
b.push([a[i].slice(0, s), a[i+1].slice(0, s)], [a[i].slice(s), a[i+1].slice(s)]) //[[["01", "02"], ["05", "06"]], [["03", "04"], ["07", "08"]], [["05", "06"], ["09", "10"]], [["07", "08"], ["11", "12"]]] в консоли, или не то? |
А, есть ошибка, смещение не проверяется, ну это тоже поправимо.
А я сперва даже не обратил внимание на выделенное красным :) |
| Часовой пояс GMT +3, время: 02:11. |