我花了一天的時間試圖操縱一個JSON做顯示一張桌子,但我無法做到我想做的事。在角度控制器中操縱JSON
我想在每個城鎮的表格中顯示統計數據。 我不得不重新集結線同一個鎮 我鎮有幾行,我想顯示一個小計行
所以假設輸出中的是:
- 線1 | PARIS |建築A .....
- line 2 | PARIS |建築D .....
- subTotal | PARIS |建築.....
- line 3 |倫敦|建築B .....
- line 4 |倫敦|建築F .....
- subTotal |倫敦|建築.....
- line 5 |東京|建築C .....
- line 6 |文華財經|建築E .....
- TOTAL | ALL | .....
的代碼在我的控制器:
$scope.rowCollection = [
{
"id": "1",
"nom": "BUILDING A",
"town": "PARIS",
"date": "2015-11-09",
"stat1": 3,
"stat2": 115,
"stat3": 4,
"stat4": 111
},
{
"id": "2",
"nom": "BUILDING B",
"town": "LONDON",
"date": "2013-11-09",
"stat1": 1,
"stat2": 51,
"stat3": 1,
"stat4": 50
},
{
"id": "3",
"nom": "BUILDING C",
"town": "TOKYO",
"date": "2012-10-21",
"stat1": 0,
"stat2": 142,
"stat3": 0,
"stat4": 142
},
{
"id": "4",
"nom": "BUILDING D",
"town": "PARIS",
"date": "2011-02-03",
"stat1": 0,
"stat2": 132,
"stat3": 0,
"stat4": 132
},
{
"id": "5",
"nom": "BUILDING E",
"town": "CHICAGO",
"stat1": 0,
"stat2": 94,
"stat3": 0,
"stat4": 94
},
{
"id": "6",
"nom": "BUILDING F",
"town": "LONDON",
"date": "0000-00-00",
"stat1": 0,
"stat2": 86,
"stat3": 0,
"stat4": 86
}
];
var myArray = [];
for (var i = 0; i < $scope.rowCollection.length; i++) {
if (Array.isArray(myArray[$scope.rowCollection[i].town])) {
myArray[$scope.rowCollection[i].town].push($scope.rowCollection[i]);
} else {
myArray[$scope.rowCollection[i].town] = $scope.rowCollection[i];
}
}
$scope.myArray = myArray;
console.log($scope.myArray);
我到底做錯了什麼?我看到了長度哦,我的陣列是「0」。我可以增加它,但我不工作太多。這是正常的
感謝您的幫助
下面是一個的jsfiddle: https://jsfiddle.net/ohu6dhqy/
你能顯示完整的輸出嗎?總數包含什麼? – Weedoze
你想在for循環中實現什麼(.js,第70行)? – Maxime
你爲什麼要這樣做:'if(Array.isArray(myArray [$ scope.rowCollection [i] .town]))'?你的城鎮真的可以是一個陣列? – Maxime