Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数返回False,但应返回True_Javascript - Fatal编程技术网

Javascript函数返回False,但应返回True

Javascript函数返回False,但应返回True,javascript,Javascript,我正在检查一个条件,并根据该条件返回true和false。问题是我的条件甚至满足了。下面是我的代码 $scope.getPostalcode = function(obj) { for ( var x in obj) { if (typeof obj[x] === 'object') { $scope.getPostalcode(obj[x]); } else if (x === 'postalCode') {

我正在检查一个条件,并根据该条件返回true和false。问题是我的条件甚至满足了。下面是我的代码

 $scope.getPostalcode = function(obj) {
     for ( var x in obj) {
        if (typeof obj[x] === 'object') {
           $scope.getPostalcode(obj[x]);
        } else if (x === 'postalCode') {
           if (obj.postalCode == $scope.postalCode) {
              return true;
              break;
           }
        }
     }
     return false;
  }
obj.postalCode
$scope.postalCode
的值相同。我还检查了两者的类型都是string。我还包括我的对象,以防我在那里犯错误

[
  {
    "account": "10066",
    "pcn": "K770",
    "msn": "6631",
    "meterName": "DM",
    "address": {
      "companyName": "Test",
      "street": "10 Downing Street",
      "city": "LONDON",
      "country": "UK",
      "postalCode": "SW1A 2AA"
    }
  },
  {
    "account": "63350",
    "pcn": "K7",
    "msn": "663",
    "meterName": "DM5",
    "address": {
      "companyName": "DITIQUE",
      "street": "10 Downing Street",
      "city": "LONDON",
      "country": "UK",
      "postalCode": "SW1A 2AA"
    }
  }
]

为了更好地理解正在发生的事情,您可以使用调试器或尝试在函数的每个步骤中记录您的值。在
if(typeof obj[x]==“object')中,您没有使用
return
,所以你递归地调用同一个函数,但是你没有退出第一个调用。不确定你想要实现什么,但是我认为你想要改变
$scope.getPostalcode(obj[x])进入
返回$scope.getPostalcode(obj[x])在if语句中。这是否回答了您的问题@马克·拜恩斯帮了忙。谢谢