Я работаю над функцией макета сетки. Я около 1/2 пути туда и ударил стену.Замените некоторую строку в javascript
Я использую строку и запускаю одну функцию RegExp для каждого окна. Я помещаю в сетку, чтобы определить, где она будет соответствовать (в зависимости от количества строк/столбцов, которые она занимает). Это работает успешно. Демонстрация:
function findSpace(columns, rows){
var totalColumns = 4;
var grid = "11002100020000200002";
//1 represents occupied space, 0 empty space, and 2 a new line
var reg = RegExp("(0{" + columns + "})(([0-2]{" + (totalColumns - columns + 1) + "})0{"+columns+"}){" + (rows-1) + "}");
var i = grid.search(reg);
return i.index;
}
Возвращает индекс матча, давая мне знать, где в моей сетке это поле будет падать. См. fiddle.
Я не понимаю, как заменить «0» на «1». Выполнение grid.replace(reg, "1")
, конечно же, заменяет все от начала матча до конца синглом «1». Мне нужно заменить только «0» s, которые будут заняты для строк и столбцов, каждый из которых имеет «1», а не любые совпадающие символы.
Это упражнение по-разному. Да, я мог бы сделать это с помощью структуры данных массива. Что это за забава? Я не ищу «не делай так, как делайте это так, как все остальные» отвечает, я пытаюсь определить наиболее эффективный способ решения моего сценария.
Спасибо!
Это как раз может быть билет, это хорошая мысль. Я буду работать над этим и вернуться к вам. –