![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
Собственно... алгоритм какой у такого рода манипуляций? хотя б на примере замены части элементов двумерного массива элементами другого двумерного массива меньшей размерности, когда индексы первого элемента, подлежащего замене, известны...
массив A: [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] массив В: [[0, 0, 0, 0], [0, 0, 0, 0]] массив С (А, с заменёнными элементами): [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] |
|
|||||
|
тоесть нужно встроить в середину?
тогда примерно так причем a[(a.length- b.length)/2][(a[0].length-b[0].length)/2] - это первый элемент подлежащий замене. если он находится где то еще и индексы его известны - то соответственно нужно изменить и предыдущие циклы. Последний раз редактировалось HotIceCream; 09.11.2010 в 01:58. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
splice
|
|
|||||
|
Подставляет значения из b в a, в указанную позицию. Если нужен новый массив, можно вначале скопировать a.
var a:Array = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] var b:Array = [[0, 0, 0, 0], [0, 0, 0, 0]] var row:int = 1; // строка вставки var col:int = 3; // столбец вставки for (var i:int = 0; i < b.length; i++) { for (var j:int = 0; j < b[i].length; j++) { var i1:int = i + row; var j1:int = j + col; // проверяем, что есть куда вставлять if ( i1 < a.length && j1 < a[i1].length) { a[i1][j1] = b[i][j]; } } } trace(a.join("\n")); |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|