Как создать массив из нескольких вариантов из строки, используя JavaScript - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть эта строка:

foo = "moon is.white #small"

Я хочу преобразовать его в этот массив, используя такие правила, как после "." и "#" разделить и добавить &, если перед ним нет пробелов. Я получил ответ в этой теме: Как разделить строку с несколькими правилами в javascript , и это то, что я получил, и это здорово:

fooArr[0] = ['moon','is','&.white','#small']

Мой вопрос: как мне сделать другие вариации строки, чтобы получить массив с несколькими вариациями с этими правилами

A. разделить на разные позиции (иногда пробелы будут разделены, а иногда 2 слова и более будут рассматриваться как одно - во ВСЕХ вариациях (обратите внимание, что если я не разделю слова с помощью "." или "#", я не добавлю "&".

fooArr[1] = ['moon is','&.white','#small']
fooArr[2] = ['moon is.white','#small']
foorArr[3] = ['moon','is.white','#small']
etc...

B. Если там есть "." или "#", тогда я хочу, чтобы все варианты порядка между ними - ".all#is.good" могут быть -> [.all#is.good] & [.all.good#is] & [.good.all#is] и т. д. (и я хочу, чтобы это сочеталось с вариантами из первого правила, такими как [.all,&.good,&#is] & [.all.good,$#is]), поэтому я будет иметь ВСЕ КОМБИНАЦИИ ОБА А И В

В конце концов мне нужен массив, объединяющий все комбинации A и B (он должен дать мне много вариаций: fooArr[0]..fooArr[X].

С чего начать?

1 Ответ

0 голосов
/ 20 февраля 2012

Используйте серию регулярных выражений, чтобы найти все места, где вы хотите разбить строку и заменить ее на «&». Затем разделите на "".

Или используйте цикл для перемещения по строке, создавая замены, как указано выше. А потом раскололись.

Или используйте цикл для перемещения по строке и создания массива напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...