Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите создать генератор массива (https://javascript.ru/forum/misc/66019-pomogite-sozdat-generator-massiva.html)

karakym 21.11.2016 13:56

Помогите создать генератор массива
 
Доброго времени суток, нужна ваша помощь в создании генератора строк массива.
По сути, нужно из этого:
Код:

6:MDX|NSX|A5
7:M3|M6|X5|X6

Сделать вот это:
{value:6,list: [{text: 'MDX'},{text: 'NSX'},{text: 'A5'}]},
	{value:7,list: [{text: 'M3'},{text: 'M6'},{text: 'X5'},{text: 'X6'}]},

HTML это 2 textarea и кнопка по нажатию которой и происходит "генерация".
<textarea id="before"></textarea>
<textarea id="after"></textarea>
<button>GEN</button>

ksa 21.11.2016 14:06

Цитата:

Сообщение от karakym
[{text: 'MDX'},{text: 'NSX'},{text: 'A5'}]

Зачем делать массив объектов?
Если все данные свободно разместятся в простом массиве

['MDX', 'NSX', 'A5']

ksa 21.11.2016 14:16

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
textarea {
	width: 90%;
	height: 200px;
	margin-left: auto;
	margin-right: auto;
}
</style>
<script type='text/javascript'>
$(function (){
	$('button').click(function (){
		var val=$('#before').val();
		var reg=/(\d+):(.+)/g;
		val=val.replace(reg,'{value:$1,list: [$2]}')
		val=val.replace(/\n|\|/g,',');
		$('#after').val(val)
	});
});
</script>
</head>
<body>
<div>
	<textarea id="before">6:MDX|NSX|A5
7:M3|M6|X5|X6</textarea>
	<textarea id="after"></textarea>
</div>
<button>GEN</button>
</body>
</html>

karakym 21.11.2016 14:36

Но тогда мне нужно этот код переделать
var arr=[
	{value:6,list: [{text: 'A3'},{text: 'A4'},{text: 'A5'}]},
	{value:7,list: [{text: 'M3'},{text: 'M6'},{text: 'X5'},{text: 'X6'}]},
];

$("#category").change(function() {
selval = $(this).val();
forval = arr[selval - 6].list;
  $("#selectmodel").empty();
  $.each(forval, function(i, val) {
  $("#selectmodel").append("<option value='"+val.text+"'>"+val.text+"</option>");
})});
$("#selectmodel").change(function() {
text = $(this).val();
  $("#xf_model").val(text);
});

join 21.11.2016 14:50

Цитата:

Сообщение от ksa
charset=windows-1251

ksa, у тебя не бывает проблем с этой кодировкой? (кракозябры там всякие, иногда) ?
utf-8 более универсальна, имхо

ksa 21.11.2016 14:52

Цитата:

Сообщение от join
utf-8 более универсальна, имхо

У нас есть данные в MS DOS... :(
И не все символы перекодируются в utf-8. Вот и сижу пока в ней...

karakym 21.11.2016 14:59

Код сам переделал.
Как мне в конце каждой строчки вывода ставить перенос (\n)?
Поставил вот тут:
val=val.replace(reg,'{value:$1,list: [$2]}')
Но теперь после каждой запятой перенос, а нужно только после конца строки.
И еще каждое значение нужно оборачивать в одинарные скобки ('значение')
было так: [qwe,asd,zxc] нужно так: ['qwe','asd','zxc']

laimas 21.11.2016 17:15

karakym,
что вы в конечном итоге делаете? Какой-то офигительный свсистопляс у вас - в одной теме вы формируете на клиенте (!) SQL запрос, и если его клиент (!) и отправит на исполнение, это не 100%, а все 200% дыра в безопасности. Мало того, в той же теме вместо раздельных полей формы то же самое что и здесь - заморочки со строкой, что не есть гут.

Что является источником этих "уродливых" данных, которые в непотребном виде и их приходится еще получать?

karakym 22.11.2016 21:59

Есть у меня на сервере файлы в которые необходимо вставить информацию, вот и использую данные сниппеты для генерации такой информации. Вы не переживайте, данные скрипты не будут использоваться напрямую.

laimas 23.11.2016 00:52

Да мне то чего переживать, пишите вы и заботы ваши.


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