首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次检查多个变量是否具有相同的值,并编写conditional - jQuery

一次检查多个变量是否具有相同的值,并编写conditional - jQuery
EN

Stack Overflow用户
提问于 2016-09-20 05:22:16
回答 2查看 44关注 0票数 0

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

以下是我的变量(以角度表示):

代码语言:javascript
复制
        $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); 

我想做这样的事情:

代码语言:javascript
复制
        if ($scope.[VARIABLE FOR EACH HERE] > 0) {
            $scope.isActive = true;
        } else {
            $scope.isActive = false;
        } 

你知道怎么做吗?

解决方案:

最终只使用了jQuery...

代码语言:javascript
复制
        $( "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");
            }
        });
EN

回答 2

Stack Overflow用户

发布于 2016-09-20 05:29:24

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

代码语言:javascript
复制
$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
};

然后像这样循环遍历它们:

代码语言:javascript
复制
$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
票数 1
EN

Stack Overflow用户

发布于 2016-09-20 05:29:31

我不确定我是否完全理解您的问题,但是您也许能够使用项目名称数组并使用.some()方法进行迭代。

代码语言:javascript
复制
['item1', 'item2', 'item3'].some(function(item) {
  $scope.isActive = ($scope[item] > 0);
  return $scope.isActive;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39582328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档