Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Генератор строк из столбцов (https://javascript.ru/forum/misc/58570-generator-strok-iz-stolbcov.html)

karakym 29.09.2015 15:04

ksa,
Шайтанама!:write:
Спасибо, то что доктор прописал!:victory:

karakym 29.09.2015 15:55

А подскажите пожалуйста еще такую вещь:
в первом textarea есть 5 строк, но их не нужно комбинировать а просто чередовать!
Как это выполнить?

ksa 29.09.2015 16:13

Цитата:

Сообщение от karakym
в первом textarea есть 5 строк, но их не нужно комбинировать а просто чередовать!

Чем отличается чередование от комбинирования? :D

karakym 29.09.2015 16:25

ksa,
Ну смотри что я имею в виду:
1 строка: Коля, Вася, Витя
2 строка: Любит, Не любит
3 строка: Машу, Дашу, Иру
--------------------------------
Получится 18 комбинаций, а именно:
Цитата:

Коля Любит Машу
Коля Любит Дашу
Коля Любит Иру
Коля Не любит Машу
Коля Не любит Дашу
Коля Не любит Иру
Вася Любит Машу
Вася Любит Дашу
Вася Любит Иру
Вася Не любит Машу
Вася Не любит Дашу
Вася Не любит Иру
Витя Любит Машу
Витя Любит Дашу
Витя Любит Иру
Витя Не любит Машу
Витя Не любит Дашу
Витя Не любит Иру
Нужно что бы первая строка не создавалась для каждой Даши любит не любит а просто по очереди вставлялся текст:
Цитата:

Коля Любит Машу
Вася Любит Дашу
Витя Любит Иру
Коля Не любит Машу
Вася Не любит Дашу
Витя Не любит Иру
Коля Любит Машу
Вася Любит Дашу
Витя Любит Иру
Коля Не любит Машу
Вася Не любит Дашу
Витя Не любит Иру
Получится 12 комбинаций (по сути умножаем не на 3 строки а на одну, просто она подставляет Витю, Колю и Васю по очереди

ksa 29.09.2015 16:58

Цитата:

Сообщение от karakym
просто по очереди вставлялся текст:
Коля Любит Машу
Вася Любит Дашу
Витя Любит Иру
Коля Не любит Машу
Вася Не любит Дашу
Витя Не любит Иру
Коля Любит Машу
Вася Любит Дашу
Витя Любит Иру
Коля Не любит Машу
Вася Не любит Дашу
Витя Не любит Иру
Получится 12 комбинаций

Не совсем понял зачем дважды повторять одно и то же... :blink:

karakym 29.09.2015 17:05

Хорошо зайдем с другой стороны!
Представь что в первой строке только одно слово, например: "КоляВасяВитя" (а значит с ним будет только 12 комбинаций)
И нужно что бы первое слово каждой сточки было не "КоляВасяВитя", а по очереди для каждой строки Коля, Вася, Витя, Коля, Вася....
Если написать 4 строки в пером textarea, в результате будут вставляться по очереди, но комбинировать будет как буд то там одна строка!

karakym 29.09.2015 17:18

Расскажу поподробней:
Есть excel файл который будет импортирован в базу данных.
Есть строка "Название" для которого очень много позиций, и вот для автоматизации мне нужен такой скрипт.
Скрипт сделал все отлично.
В первом textarea мне нужно всего одно слово для комбинации, для других textarea их намного больше. Все хорошо генерирует, спасибо еще раз за скрипт. Но вот не задача, в первом textarea всего одно слово "Грузоперевозки", как то однотонно получается и хотелось бы, что бы слово менялось иногда (Хорошо бы по очереди, но можно и случайно) между словами "Перевозка груза, грузоперевозки и прочее", данный скрипт подставит мне слово Перевозка груза так, что у меня появятся лишние строки, но они совсем не нужны! Вот и бьюсь как рыба об лёд...

ksa 30.09.2015 08:18

Цитата:

Сообщение от karakym
в первом textarea всего одно слово "Грузоперевозки", как то однотонно получается и хотелось бы, что бы слово менялось иногда (Хорошо бы по очереди, но можно и случайно) между словами "Перевозка груза, грузоперевозки и прочее"

Так ты рандомно выбирай значение и будет тебе счастие...

karakym 30.09.2015 11:24

Теперь чет вообще ничего не работает!
function test(){
  var cols=0;
	var arr=[
		document.getElementById('gruz').value.split(/\n/),
		document.getElementById('gorod').value.split(/\n/),
		document.getElementById('avto').value.split(/\n/)
	];
  if ($('#chkgruz').is(':checked')) {
  var arr[0]=Math.floor(document.getElementById('gruz').value.split(', ').length*Math.random())
} else {
  
} 
	var or=document.getElementById('result');
	for (var i=0; i<arr[0].length; i++) {
		for (var j=0; j<arr[1].length; j++) {
			for (var k=0; k<arr[2].length; k++) {
				var str=arr[0][i]+' '+arr[1][j]+' '+arr[2][k];
        cols=cols+1;
				or.innerHTML=or.innerHTML+'<td>'+str+'</td>';
			};
		};
	};
  alert('Всего получилось '+cols+' позиций.');
};

ksa 30.09.2015 11:28

Цитата:

Сообщение от karakym
Теперь чет вообще ничего не работает!

Простая манипуляция со строками разных программ не всегда дает нужный результат... :D


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