Итерация структуры JavaScript

Я пытаюсь проанализировать данные с помощью JSON.parse. После разбора я получаю данные ниже.

Как я могу выполнять итерацию ниже анализируемых данных? Анализируемые данные содержат массив массива.

{
 "AcLedger" : [
 {
 "BillRef" : "B4944",
 "ClientBalance" : 100,
 "ClientCr" : 40,
 "ClientDr" : 140,
 "ContraCode" : "C100",
 "DepositBalance" : 30,
 "DepositCr" : 20,
 "DepositDr" : 50,
 "DisbursementGroup" : "DG",
 "Narrative" : "Test Narrative1",
 "OfficeBalance" : 90,
 "OfficeCr" : 10,
 "OfficeDr" : 100,
 "OutstandingValue" : 200,
 "PostDate" : "/Date(1398149097737)/",
 "PostType" : "MA",
 "Reconciled" : false,
 "Reference" : "Ref001",
 "TransactionNumber" : 100,
 "Undone" : false,
 "VatCode" : "VAT100",
 "VatValue" : 103
 },
 {
 "BillRef" : "B4944",
 "ClientBalance" : 100,
 "ClientCr" : 40,
 "ClientDr" : 140,
 "ContraCode" : "C100",
 "DepositBalance" : 30,
 "DepositCr" : 20,
 "DepositDr" : 50,
 "DisbursementGroup" : "DG",
 "Narrative" : "Test Narrative 2",
 "OfficeBalance" : 90,
 "OfficeCr" : 10,
 "OfficeDr" : 100,
 "OutstandingValue" : 200,
 "PostDate" : "/Date(1398149097737)/",
 "PostType" : "MA",
 "Reconciled" : false,
 "Reference" : "Ref002",
 "TransactionNumber" : 789,
 "Undone" : false,
 "VatCode" : "VAT100",
 "VatValue" : 103
 }
 ],
 "Client" : 100,
 "Deposit" : 0,
 "Office" : 0,
 "Transferable" : 0,
 "UnAllocatedCredit" : 0,
 "UnBilledAntiDisbursement" : 0,
 "UnBilledDisbursement" : 0,
 "UnPaidAntiDisbursement" : 0,
 "UnPaidBills" : 0
}

Кто-нибудь поможет мне достичь этого?

2 ответа

Для массива внутри другого массива:

var i, j;
var outerArrayItem, innerArrayItem;
for (i = 0; i < outerArray.length; i++) {
 // do something with the outer array
 outerArrayItem = outerArray[i];
 for (j = 0; j < outerArray[i].length; j++) {
 // do something with the inner array
 innerArrayItem = outerArray[i][j]
 }
}

но я не думаю, что это массив внутри другого массива. Чтобы перемещаться по объекту (внутри {}), вы должны использовать:

var key, innerKey, item;
for (key in someObject) {
 // do something with that item:
 item = someObject[key];
 for (innerKey in item) {
 // do something with item[innerKey]
 }
}


Данные не являются массивом массивов. Это объект (который я буду называть "данными"), который содержит много свойств, один из которых ("AcLedger") представляет собой массив объектов.

Один из способов итерации через массив AcLedger:

for (var i = 0; i < data.AcLedger.length; i++) {
 var array_item = data.AcLedger[i];

 // Use array_item
}

licensed under cc by-sa 3.0 with attribution.