Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как получить объект в заданном формате (https://javascript.ru/forum/misc/36145-kak-poluchit-obekt-v-zadannom-formate.html)

Sveta 05.03.2013 10:22

как получить объект в заданном формате
 
Добрый день!
Подскажите пожалуйста:
нужно представить данные в определенном формате

var chartData = [{
x: "USA",
abv: 3.5,
kk: 4.2
}, {
x: "UK",
abv: 1.7,
lo: 3.1
}]

Вот строку такую я могу сделать:
for(var i=0; i<myJson.aaData.length; i++){ 
			var x = myJson.aaData[i][1];
			var str_data="{x: "+x+",";
			var j=i;
			while(x==myJson.aaData[j][1]){
				var id_st=myJson.aaData[j][0];
				var zn_st=myJson.aaData[j][4];
				if(zn_st!="") str_data+=id_st+": "+zn_st+",";
				j++;
				if(j==myJson.aaData.length)break;
			}	
            str_data=str_data.substring(0, str_data.length - 1);
			str_data+="}";
			chartData.push(str_data);
			i=j-1;
		}

но мне нужен объект а не строка.
Читаю, пытаюсь, мой код почему-то не работает...вообще там синтаксическая ошибка какая-то а я не могу найти...или по-другому как сделать?
вот мой код
for(var i=0; i<myJson.aaData.length; i++){ 
			var x = myJson.aaData[i][1];
			var str_data={x:myJson.aaData[i][1]};
			var j=i;
			while(x==myJson.aaData[j][1]){
				var id_st=myJson.aaData[j][0];
				if(myJson.aaData[j][4]!="") str_data.[id_st]=myJson.aaData[j][4];
				//alert(str_data);
				j++;
				if(j==myJson.aaData.length)break;
			}	
			chartData.push(str_data);
			i=j-1;
		}

danik.js 05.03.2013 10:38

Ошибка здесь: str_data.[id_st] - точка лишняя. А можно пример структуры myJson.aaData ?

Sveta 05.03.2013 10:46

можно)

"aaData": [
["24688","2013-02-18 00:00:00","-50.8","936.6","63.25","143.15","739","1048.7"],
["24688","2013-02-18 03:00:00","-42.0","935.2","63.25","143.15","739","1042.5"],
["24688","2013-02-18 06:00:00","-41.2","934.4","63.25","143.15","739","1041.1"],
["24688","2013-02-18 09:00:00","-48.0","934.1","63.25","143.15","739","1044.2"],
["24534","2013-02-18 12:00:00","-51.0","933.8","63.25","143.15","739","1045.5"],
["24688","2013-02-18 15:00:00","-53.0","932.6","63.25","143.15","739","1045.3"],
["24688","2013-02-18 18:00:00","-53.4","931.8","63.25","143.15","739","1044.6"],
["24688","2013-02-18 21:00:00","-55.0","931.0","63.25","143.15","739","1044.5"],
["24688","2013-02-19 03:00:00","","928.5","63.25","143.15","739","1037. 0"],
["24688","2013-02-19 06:00:00","-42.1","926.9","63.25","143.15","739","1033.3"]
]

Файл отсортирован по второму столбцу - дата, вот мне и нужно чтобы каждый str_Data содержал все по каждой дате) поэтому и цикл внутренний.
Ошибку исправила...Спасибо)....но видно есть еще что-то...все равно не работает((

Sveta 05.03.2013 10:51

ОУ, все заработало) это я у себя еще успела ошибку сделать пока тема обсуждалась)
Спасибо большое!

danik.js 05.03.2013 10:53

И где тут USA, UK, abv, kk, lo ?

Sveta 05.03.2013 10:58

Да это просто к примеру) суть в том что есть обязательно x:значение и в зависимости от него куча других, причем разных, и сколько я тоже заранее не знаю. X может и текстовым быть, не обязательно число.


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