Как сделать перебор по маске?
Всем привет!
Задача простая - но я в JS полный ноль, прошу помочь, други! Есть два массива: M_A=['A','B','C'] M_B=['Z','Y','X'] Есть маска вида AABA. где A и B означают значения из какого массива должны находится в данной позиции.. маска меняется, значения массива - фиксированные. Надо чтобы функция каждый вызов возвращала следующее значение по маске: в примере это будут AAZA, AAZB, AAZC, AAYA, AAYB, AAYC.......CCXC Примитив, но без знаний конструкций языка сделать не могу :( Премного благодарствую заранее! |
Так?
var pos = 0;
var arr_A = ['A','B','C'];
var arr_B = ['Z','Y','X'];
function find_with_mask(mask)
{
var result = "";
for (var i in mask)
{
var char = mask[i];
result += window["arr_"+char][pos];
}
pos++;
return result;
}
alert(find_with_mask('AABA'));
alert(find_with_mask('AABA'));
alert(find_with_mask('AABA'));
http://learn.javascript.ru/play/Zguugc |
Цитата:
В данном коде меняются сразу все символы в шаблоне, а задача стоит только по одному символу менять. Типа как бинарный код в порядке возрастания идет 000, 001, 010, 011, 100, 101, 110, 111.. Так и тут должны значения перебираться.. Допилю сам. Огромное спасибо!!! |
| Часовой пояс GMT +3, время: 11:44. |