цикл с массивом данных - PullRequest
       3

цикл с массивом данных

0 голосов
/ 19 апреля 2011

У меня есть этот код, чтобы получить три значения.

 success: function(json){
                        $msg1 = parseFloat(json[0].valor1);
                        $msg2 = parseFloat(json[1].valor2);
                        $msg3 = parseFloat(json[2].valor3);
                    }

, но теперь предположим, что мне нужно 200 значений.Я не делаю 200 раз ...

                        $msg1 = parseFloat(json[0].valor1);
                        $msg2 = parseFloat(json[1].valor2);
                        $msg3 = parseFloat(json[2].valor3);
                        //...
                        $msg200 = parseFloat(json[199].valor200);

так, мне нужен цикл, правильно?

я пробовал что-то вроде этого

                        for (i=0; i<200; i++) {
                        $msg(i+1) = parseFloat(json[i].valor(i+1));
                        i++;
                        }   

но не сделалне работает

спасибо

Ответы [ 4 ]

4 голосов
/ 19 апреля 2011

Вот почему The Creator предоставил мировые массивы.

var msgs = [];
for (var i = 0; i < 200; ++i)
  msgs.push(parseFloat(json[i]['valor' + i]));

Обратите внимание, что ваши JSON-данные также должны сохранять эти "доблестные" свойства как массивы, хотя в JavaScript вы можете иметь дело со странной схемой именования, такой каккак в примере выше.

edit - упс, опечатки исправлены: -)

1 голос
/ 19 апреля 2011
$msg = [];
for (var i=0; i<200; i++) {
    $msg.push(parseFloat(json[i]["valor"+i]));       
} 
0 голосов
/ 19 апреля 2011
var array = json.someid;// or json['someid'];
// json is returned not an array
var msgs = [];
$.each(array, function(index, e) {
    msgs.push(parseFloat[e['valor' + index], 10); 
});

при использовании parseFloat используйте параметр radix, если вы не хотите, чтобы происходили плохие вещи;

javascript нужно указать, например, не разбирать восьмеричное;

0 голосов
/ 19 апреля 2011

Как указано в Pointy или:

                var msgs = [];
                for (i=0; i<200; i++) {
                $msg[i] = parseFloat(eval('json[' + i + '].valor(' + i + '+1)'));
                i++;
                } 

Как бы то ни было, eval медленный, поэтому ответ Пойнти лучше.

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