javascript - 一次检查多个变量是否具有相同的值并编写条件 - jQuery

标签 javascript jquery angularjs

我有一堆变量,我想在 js 中检查 > 0

这是我的变量(在 Angular 中):

        $scope.total_lbs_urea = ($scope.lbs_needed / $scope.urea_n).toFixed(2);
        $scope.total_lbs_ammonium = ($scope.lbs_needed / $scope.ammonium_n).toFixed(2);
        $scope.total_lbs_calcium = ($scope.lbs_needed / $scope.calcium_n).toFixed(2);
        $scope.total_lbs_un32 = ($scope.lbs_needed / $scope.un32_n).toFixed(2);
        $scope.total_lbs_can17 = ($scope.lbs_needed / $scope.can17_n).toFixed(2);
        $scope.total_lbs_aqua = ($scope.lbs_needed / $scope.aqua_n).toFixed(2);

        // weight/gallons variables for gallons of product needed
        $scope.total_gal_urea = ($scope.total_lbs_urea / $scope.urea_g).toFixed(2);
        $scope.total_gal_ammonium = ($scope.total_lbs_ammonium / $scope.ammonium_g).toFixed(2);
        $scope.total_gal_calcium = ($scope.total_lbs_calcium / $scope.calcium_g).toFixed(2);
        $scope.total_gal_un32 = ($scope.total_lbs_un32 / $scope.un32_g).toFixed(2);
        $scope.total_gal_can17 = ($scope.total_lbs_can17 / $scope.can17_g).toFixed(2);
        $scope.total_gal_aqua = ($scope.total_lbs_aqua / $scope.aqua_g).toFixed(2);

        // phosophorus variables to get phosphorus needed
        $scope.total_p_urea = ($scope.lbs_needed * $scope.urea_p).toFixed(2);
        $scope.total_p_ammonium = ($scope.lbs_needed * $scope.ammonium_p).toFixed(2);
        $scope.total_p_calcium = ($scope.lbs_needed * $scope.calcium_p).toFixed(2);
        $scope.total_p_un32 = ($scope.lbs_needed * $scope.un32_p).toFixed(2);
        $scope.total_p_can17 = ($scope.lbs_needed * $scope.can17_p).toFixed(2);
        $scope.total_p_aqua = ($scope.lbs_needed * $scope.aqua_p).toFixed(2);            

        // potassium(k) variables to get potassium(k) needed
        $scope.total_k_urea = ($scope.lbs_needed * $scope.urea_k).toFixed(2);
        $scope.total_k_ammonium = ($scope.lbs_needed * $scope.ammonium_k).toFixed(2);
        $scope.total_k_calcium = ($scope.lbs_needed * $scope.calcium_k).toFixed(2);
        $scope.total_k_un32 = ($scope.lbs_needed * $scope.un32_k).toFixed(2);
        $scope.total_k_can17 = ($scope.lbs_needed * $scope.can17_k).toFixed(2);
        $scope.total_k_aqua = ($scope.lbs_needed * $scope.aqua_k).toFixed(2); 

        // sulfur variables to get potassium(k) needed
        $scope.total_s_urea = ($scope.lbs_needed * $scope.urea_s).toFixed(2);
        $scope.total_s_ammonium = ($scope.lbs_needed * $scope.ammonium_s).toFixed(2);
        $scope.total_s_calcium = ($scope.lbs_needed * $scope.calcium_s).toFixed(2);
        $scope.total_s_un32 = ($scope.lbs_needed * $scope.un32_s).toFixed(2);
        $scope.total_s_can17 = ($scope.lbs_needed * $scope.can17_s).toFixed(2);
        $scope.total_s_aqua = ($scope.lbs_needed * $scope.aqua_s).toFixed(2); 

        // calcium variables to get potassium(k) needed
        $scope.total_c_urea = ($scope.lbs_needed * $scope.urea_c).toFixed(2);
        $scope.total_c_ammonium = ($scope.lbs_needed * $scope.ammonium_c).toFixed(2);
        $scope.total_c_calcium = ($scope.lbs_needed * $scope.calcium_c).toFixed(2);
        $scope.total_c_un32 = ($scope.lbs_needed * $scope.un32_c).toFixed(2);
        $scope.total_c_can17 = ($scope.lbs_needed * $scope.can17_c).toFixed(2);
        $scope.total_c_aqua = ($scope.lbs_needed * $scope.aqua_c).toFixed(2); 

我想做这样的事情:

        if ($scope.[VARIABLE FOR EACH HERE] > 0) {
            $scope.isActive = true;
        } else {
            $scope.isActive = false;
        } 

知道如何做到这一点吗?

解决方案:

最终只使用了 jQuery...

        $( "tr" ).each(function() {
            var number = parseInt($(this).find('td').text(), 10);
            if (number > 0) {
                $(this).find('td').addClass("table-background");
            } else {
                $(this).find('td').removeClass("table-background");
            }
        });

最佳答案

我会将对象内的所有这些变量保存到作用域中,如下所示:

$scope.variables = {
    total_lbs_urea: ($scope.lbs_needed / $scope.urea_n).toFixed(2),
    $scope.total_lbs_ammonium: ($scope.lbs_needed /$scope.ammonium_n).toFixed(2),
    $scope.total_lbs_calcium: ($scope.lbs_needed / $scope.calcium_n).toFixed(2)
    ...etc
};

然后像这样循环它们:

$scope.isActive = false; //start with false
for(var prop in $scope.variables){
   if($scope.variables.hasOwnProperty(prop)){
       if($scope.variables[prop] > 0){
            $scope.isActive = true;
            break;  //add this if you want to stop looping at the first variable that is > 0 
       }
   }
}
//if nothing is > 0, $scope.isActive will have remained false at this point

关于javascript - 一次检查多个变量是否具有相同的值并编写条件 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39582328/

相关文章:

javascript - 每次页面刷新后用户个人资料信息都会重置(使用 Hello.js)

javascript - OpenLayer 坐标系

jquery - 如何在页面重新加载后保持相同的 `ul` 处于事件状态?

javascript - 如何使用 "jstree"jquery 插件将 json 变量附加为子节点 - 无 ajax

javascript - Highcharts - 如何通过 js 切换数据标签?

javascript - 删除范围内值更改时的计时器

javascript - 在开始另一个之前完成动画

javascript - 如何在布局mvc上调用javascript

javascript - 变量值是否改变

javascript - 如何使用 AngularJS 将新项目推送到对象数组中?