Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискComboВсе проекты

Помогите сократить запись.

Константин Ефименко Мастер (1580), закрыт 2 месяца назад
У меня есть цикл следующего вида:

var jsonObj = [];
$th.each(function()
{
item = {}
item["Pr1"] = Pr1;
item["Pr2"] = Pr2;
item["Pr3"] = Pr3;
item["Pr4"] = Pr4;
item["Pr5"] = Pr5;
item["Pr6"] = Pr6;
jsonObj.push(item);
});
var jsonStr = JSON.stringify(jsonObj);

Он может содержать от 2 до 6 параметров, которые я передаю в массив, и превращаю в строку JSON.

Так же, у меня есть строка следующего вида:
"Pr1-Pr2-Pr3-Pr4-Pr5-Pr6="

Мне необходимо, используя эту строку, которая может содержать от 2 до 6 параметров, передать названия параметров так, чтобы возможно было каждому из них задать своё значение. Сами названия параметров, могут быть разными и не содержат чисел, как в примере.

Грубо говоря, я передаю строку с параметрами, на основе неё нужно передать их в массив так, чтобы я при этом смог каждому из них задать своё значение.

Не знаю на сколько это реализуемо, интересуют любые ваши идеи как это решить.
Лучший ответ
kjkszpj Знаток (260) 2 месяца назад
Комментарий удален
kjkszpj Знаток (260) Ну я к тому, что если бы pr1, pr2 объявлялись не через var, а хранились в каком-нибудь массиве или объекте, их тогда можно было бы привести в соответствие... для каждого куска строки подобрать свою пару. var pr = [1, 2, 3, "test", 5, ["test", 2]]; var keys = "Pr1-Pr2-Pr3-Pr4-Pr5-Pr6=".replace(/=$/,"").split("-"); var jsonObj = [ ]; var item = {}; for( var i = 0; i < keys.length; i++ ){ item[ keys[ i ] ] = pr[ i ]; } jsonObj.push(item); console.log( JSON.stringify(jsonObj) );
Остальные ответы
Похожие вопросы
Также спрашивают