【问题标题】:How do you check if the values of every variable in an object is the same in Javascript/AngularJS?如何检查对象中每个变量的值在 Javascript/AngularJS 中是否相同?
【发布时间】:2017-02-02 08:06:38
【问题描述】:

好吧,假设我有一个$scope.object = {};,在这个对象中我有各种类似的变量;

$scope.object.a = 0;
$scope.object.b = 0;
$scope.object.c = 0;
$scope.object.d = 0;

所以显示为object = { a : 0, b : 0, c : 0, d : 0 }

现在我有一组代码,可以根据某些复选框将某些值从 0 设置为 1。所以说我现在拥有的是

$scope.object.a = 1;
$scope.object.b = 1;
$scope.object.c = 1;
$scope.object.d = 0;

这对我来说是棘手的部分,我如何让我的$scope.object 只获取值为 1 的所有变量?

对不起,如果问题不太清楚,但我正在尽力解释它,干杯! :D

【问题讨论】:

  • “获取”是什么意思?你想达到什么目标?
  • 您尝试过什么吗? 提示: for..in
  • 是的for..in
  • 通过 fetch 我的意思是我想检查每个值为 1 的变量,然后将其推送到数组中以过滤掉一些数据,但我需要的是获取每个具有1 的值。@ChristianZosel
  • 检查所有变量并将其打印出来的实例方法。或者,如果您希望变量及其值返回哈希映射,或者只是值数组。调用方法$scope.object.checkVal();

标签: javascript angularjs object


【解决方案1】:

您可以迭代对象以获取与您的值匹配的键。

function getAllKeys(object, value) {
  keys = [];
  for(i in object) {
   if(object[i] === value) keys.push(i);
  }
  return keys;
}
// ....

$scope.object.a = 1;
$scope.object.b = 1;
$scope.object.c = 1;
$scope.object.d = 0;

getAllKeys($scope.object, 1); // ["a", "b", "c"]

【讨论】:

    【解决方案2】:

    一个小例子:

      $scope.object = {};
    
      $scope.object.a = 1;
      $scope.object.b = 1;
      $scope.object.c = 1;
      $scope.object.d = 0;
    
      // if you want an object with only element equal to 1
      var resObj = {};
      // if you want an array of element name equal to 1 in object
      var resArray  = [];
      for(var i in $scope.object){
        if($scope.object[i]==1){
          resObj[i]=1;
          resArray.push(i);
        }
      }
      console.log(resObj);
      console.log(resArray);
    

    【讨论】:

      【解决方案3】:

      你可以试试这样的

      var obj = {a:1,a:1,a:1,a:0};
      
      for(var i in obj){
          if(obj[i]==0){
              delete obj[i];
              }
          }
      
      console.log(obj); //gives the desired output
      

      【讨论】:

        【解决方案4】:

        以下代码将发挥作用,

        var yourArray= [];    
        Object.keys($scope.object).forEach(function(key){
          if($scope.object[key]===1){
           yourArray.push(key);
         }
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-07-09
          • 2011-11-11
          • 2018-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多