Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать перебор по маске? (https://javascript.ru/forum/misc/44129-kak-sdelat-perebor-po-maske.html)

lelicopter 08.01.2014 10:25

Как сделать перебор по маске?
 
Всем привет!
Задача простая - но я в JS полный ноль, прошу помочь, други!
Есть два массива:
M_A=['A','B','C']
M_B=['Z','Y','X']
Есть маска вида AABA.
где A и B означают значения из какого массива должны находится в данной позиции.. маска меняется, значения массива - фиксированные.
Надо чтобы функция каждый вызов возвращала следующее значение по маске: в примере это будут AAZA, AAZB, AAZC, AAYA, AAYB, AAYC.......CCXC
Примитив, но без знаний конструкций языка сделать не могу :(
Премного благодарствую заранее!

Erolast 08.01.2014 10:51

Так?
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

lelicopter 08.01.2014 11:10

Цитата:

Сообщение от Erolast
Так?

Не совсем так, но принцип понятен. Стало ясно как это реализуется на яве, как со строками и с массивами работать.
В данном коде меняются сразу все символы в шаблоне, а задача стоит только по одному символу менять. Типа как бинарный код в порядке возрастания идет 000, 001, 010, 011, 100, 101, 110, 111.. Так и тут должны значения перебираться..
Допилю сам. Огромное спасибо!!!


Часовой пояс GMT +3, время: 13:35.