проблемы с многомерными массивами json .... с скрипкой - PullRequest
1 голос
/ 30 марта 2011

У меня странная проблема с массивами json.

Внутри каждого массива есть еще один массив, называемый транзакциями.

Это выглядит так ...

[{"account_name": "abc123",
  "transactions": [
       {"name": "1"},
       {"name": "2"}
   ]},
 {"account_name": "abc1234",
  "transactions": [
       {"name": "3"},
       {"name": "4"}
  ]}
]

Когда я перебираю массив, каждый элемент распознается , за исключением массива транзакций .

Вот цикл, который должен посылать массив транзакций foreach с предупреждением, который не является пустым .

for(var i = 0; i < accounts.length; i++)
    {
        var accountLine = "<tr><td class='bold'>" + accounts[i].account_name + "</td></tr>";
        $("tbody#generalLedgerEntries").append(accountLine);
        if(accounts[i].transactions.length < 0)
        {
            alert("we have transactions!");
            for(var j = 0; j < accounts[i].transactions.length; j++)
            {
                var transLine = "<tr><td>" + accounts[i].transactions[j].type + "</td></tr>";
                $("tbody#generalLedgerEntries").append(transLine);
            }
        }
    }

Вот рабочая копия проблемы в jsfiddle...

http://jsfiddle.net/Ntrca/1/

Ответы [ 3 ]

2 голосов
/ 30 марта 2011

Похоже, у вас оператор сравнения задом наперед.Должно быть:

if(accounts[i].transactions.length > 0)

Когда я делаю это изменение в скрипте, я получаю предупреждение о транзакциях.

1 голос
/ 30 марта 2011

В ваших массивах "транзакций" нет атрибута "type".Кроме того, вы проверяете, что длина меньше нуля, а не больше.

0 голосов
/ 19 сентября 2013

изменить «тип» на «имя», и все работает как задумано ...

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