2016-08-15 44 views
1

我試圖比較通過函數(val)與數組中的項目(data.category)傳遞的值,以便替換硬編碼的'cat1'和'cat2' if/else語句。我最終想要做的是爲數組中相應的值分配適當的$ scope.catName和$ scope.info。比較函數變量與數組循環

如何修改我的代碼來迭代和比較?

$scope.changeRankingView = function(val){ 
    var categoriesArray = data.category; 
    var categoriesArrayLength = categoriesArray.length; 
    for (var i = 0; i < categoriesArrayLength; i++) { 
     if(val === 'cat1'){ 
      $scope.catName = data.category[0].name; 
      $scope.info = data.category[0].info; 
     } 
     else if(val === 'cat2'){ 
      $scope.catName = data.category[1].name; 
      $scope.info = data.category[1].info; 
     } 
    } 
    }; 
+0

@ developer033 - 對不起,第一次使用SO。我添加了問題。 – bort

回答

0

我不能完全肯定,我緊隨其後,但我認爲這會做你問:

$scope.changeRankingView = function(val) { 
    for (var i = 0; i < data.category.length; i++) { 
     if(val === data.category[i]){ 
      $scope.catName = data.category[i].name; 
      $scope.info = data.category[i].info; 
     } 
    } 
}; 

我直接使用data.category,因爲它似乎並不像categoriesArray中添加任何物質有用。

+0

謝謝你在這裏的幫助。我很難將這個問題歸結爲一個問題。對於我自己的教育,我怎麼能把這個問題改寫得更清楚? @DWright – bort

+0

你其實說得很好。你的代碼與解決方案非常接近,我只是不確定是否缺少其他的東西。 – DWright