Я работаю над редактором для карты, мне нужно сделать редактор карт быстрее, и мне сказали удалить каждый вложенный цикл и сделать их без инструкции for, может ли кто-нибудь привести меня к тому, как я мог бы это сделать?Как сделать forloop без использования для оператора
var tiles = [];
var draw = 0;
var w = 0;
var h = 0;
$(document).ready(function() {
$('#tile-selector img').click(function() {
draw = $(this).attr("tile");
});
});
function run() {
w = $("#w").val();
h = $("#h").val();
for (var x = 0; x < h; x++) {
tiles[x] = [];
for (y = 0; y < w; y++) {
tiles[y] = [];
$("#box").append("<img src='src/" + draw + ".gif' x='" + x + "' y='" + y + "' height='15' width='15'></img>");
tiles[x][y] = draw;
}
$("#box").append("<br />");
}
$("#box img").click(function() {
$(this).attr("src", "src/" + draw + ".gif");
tiles[$(this).attr("x")][$(this).attr("y")] = draw;
});
}
function end() {
var output = "";
for (var x = 0; x < w; x++) {
for (var y = 0; y < h; y++) {
if (tiles[x][y] > 0) {
output += "tiles[" + x + "+" + y + "*width] =" + tiles[x][y] + ";\r\n";
}
}
}
$("#output").val(output);
}
Удалена первая петля и ставится плитка [y] = []; в вложенном цикле
пут 'плитки [Y] = [];' из первого контура во второй контур перед вложенным циклом;) и удалите первый цикл. – Givi
измените ваши x и y вокруг метода 'run', большинство языков использует строчный основной порядок http://en.wikipedia.org/wiki/Row-major_order – exussum
@ Гиви, поэтому удалил мой первый цикл и положил плитку [ i] = []; до первого вложенного? – Dianamu