2016-02-05 54 views
1

我有3行代碼,其中只有擴展名被更改。明天可能有10條線路。我不想有多行簡單的代碼。我試圖將所有需要的值保存在一個數組中,並迭代並將它們分配給一個對象。然而它的失敗。這裏是我的代碼在Angular JS中迭代一個數組有一個公共代碼

for(var i = 1; i < 4; i++){ 
    $scope.accounts[i].name = $scope.accounts[i].name ? $scope.accounts[i].name : [] 
} 

我已經註釋掉了我不想要的代碼。我在這裏錯過了什麼嗎?這裏是小提琴

http://jsfiddle.net/SyedNizamChennai/kjuemhua/40/

+0

這將是更容易使用陣列的concat。你在哪裏獲得'賬戶'。發佈你的完整代碼。 –

+0

@FazalRasel,我打算使用accounts1&accounts2&accounts3爲ng-repeate – Syed

回答

0

以前的答案是錯的。 $ scope.accounts [1]表示accounts數組的第一個對象。你沒有陣列。

正確的方法如下。

for(var i = 1; i < 4; i++){ 
    $scope["accounts" + i] = $scope["accounts" + i] || [] 
} 

而且不是$scope["accounts" + i] || []相同$scope["accounts" + i] ? $scope["accounts" + i] : []

0

你的for循環是錯誤的 fixed version

$scope.accounts=[{name:"accounts1"},{name:"accounts2"},{name:"accounts3"}]; 

for(var i = 0; i < $scope.accounts.length; i++){ 
    $scope.accounts[i].name = $scope.accounts[i].name ? $scope.accounts[i].name : [] 
} 
+0

Doron,我的聲明應該等於$ scope.accounts1 = $ scope.accounts1? $ scope.accounts1:[];因爲我在ng-repeat – Syed

1

數組總是從0指數計算:

for(var i = 0; i < 3; i++){ 
    $scope.accounts[i].name = $scope.accounts[i].name ? $scope.accounts[i].name : [] 
} 
+0

+中迭代「accounts1」等對象,所以不應該在hard中使用「3」,而應該使用$ scope.accounts.length。 – pdem