2016-08-15 81 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